re
""" | 或 findall 找出所有 把结果放在一个列表里 search 返回一个满足的, 返回一个对象, 拿值调用group方法 match 只会从开始匹配, 在search基础上加^号 split 分隔 sub 替换 4个参数 re.sub("a","A","abababab",2) 小写a替换成大写A 替换2次 compile 规则 finditer 数据封装到迭代器 """
print(re.findall("sa|e","sadjke")) #['sa', 'e'] # 分组 print(re.search("d+","ssd34kk55").group()) #34 search返回一个对象, 只找一个满足的 print(re.search("(?P<name>[a-z]+[0-9]+)","abca2663bcabc6666").group("name")) #abca2663 print(re.search("(?P<name>[a-z]+)(?P<age>[0-9]+)","abca2663bcabc6666").group("name")) #abca print(re.search("(?P<name>[a-z]+)(?P<age>[0-9]+)","abca2663bcabc6666").group("age")) #2663 print(re.match("d+","23342kdj2kjkj2").group()) #23342 print(re.split("[ |]","hello abc|def")) #['hello', 'abc', 'def'] 按空格 或| 分隔 print(re.split("[ab]","abcdef")) #按a分 再按b分 ['', '', 'cdef'] print(re.split("[ad]","abcdef")) #['', 'bc', 'ef'] print(re.sub("a","c","aarud")) #替换 4个字符 a 替换成 c 替换次数 print(re.sub("d+","A","6785aa999rud")) #AaaArud print(re.sub("a","A","abababab",2)) #AbAbabab 小写a替换成大写A 替换2次 com = re.compile("d+") print(com.findall("ddlkk3538d39889klkds")) #['3538', '39889'] com = re.finditer("d+","sdkjkj376cjd30jkf") print (next(com).group()) #376 print (next(com).group()) #30 print(re.findall("www.(baidu|163).com","www.baidu.com")) #['baidu'] print(re.findall("www.(?:baidu|163).com","www.baidu.com")) #['www.baidu.com']
logging
""" 日志模块 defbug 级别最低 info warning error critical """
# basicConfig logging.basicConfig(level=logging.DEBUG, #调整级别 #filename="logger.log", #日志文件 日志是追加模式 默认a模式 #filemode="w", #日志模式 format="%(asctime)s %(filename)s [%(lineno)d] %(message)s", # 字符串形式的当前时间 文件名 调用日志输出函数的语句所在的代码行 用户输出的消息 ) logging.debug('5a5debug message') logging.info('44info message') logging.warning('33warning message') logging.error('22error message') logging.critical('11critical message')
format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息
# logger logger = logging.getLogger() fh = logging.FileHandler("test_log") #往文件发送内容 ch = logging.StreamHandler() #往屏幕发送内容 fm = logging.Formatter("%(asctime)s %(message)s") #格式 fh.setFormatter(fm) ch.setFormatter(fm) logger.addHandler(fh) logger.addHandler(ch) logger.setLevel("DEBUG") #设定级别 logger.debug("wdebugwwww") logger.info("infosss")
def logger(): logger=logging.getLogger() fh=logging.FileHandler("test_log") ch=logging.StreamHandler() fm=logging.Formatter("%(asctime)s %(message)s") fh.setFormatter(fm) ch.setFormatter(fm) logger.addHandler(fh) logger.addHandler(ch) logger.setLevel("DEBUG") return logger logger=logger() logger.debug("sssklwdebugwwwwss")