如果非要用re模块,将出问题的正则表达式用re.escape转义成本来的意思
>>>s1='a\n"C:\\Users\\12"\n<UL>\n'
>>>ps='a\n"C:\\Users\\12"\n<UL>\n</UL>\n"C:\\Users\\q"\n<UL>\n</UL>\n'
>>>s1 in ps
True
>>>ps=re.sub(re.escape(s1),'',ps)
本文使用Python2.7解析nginx日志文件,并把nginx的时间转化为时间戳(1970纪元后经过的浮点秒数),并存放到特定文件中。
Nginx的http日志格式:
示例如下:
这里使用Python的glob模块来获取所有日志文件。日志文件每天0时进行备份,命名为nginx.log.YYMMDD。
模块linecache允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。
使用python的re模块解析每一条日志。
其中body_bytes捕获非空字符串,而不是数字,因为日志里可能存在该字段值为“-”,即没有请求体。
date、method、request等参数可以采用以下方式进行提取。
使用python的time模块把时间转为时间戳。
产生文件time.log,内容如下:
语法错误啊,打印调试看看为啥。File "/home/yongjieg/temperature_scan/data_tranship/dataproc.py", line 1328, in <module>
data_proc.analyze()