编辑了我的代码,尝试了一种不同的方法来获得所需的输出。如果是对的,请告诉我
import re
pattern1 = re.compile(r'\b(ERROR)')
pattern2 = re.compile(r'^\d+-\d+-\d+')
count =0
with open('sample.txt',encoding='utf-8')as f:
for i in f:
a= re.search(pattern1,i)
if a:
count = count + 1
b = re.search(pattern2,i)
if b:
print(b.group(),':',a.group())
print('Total ERROR in the logfile:',count)
***output:***
2019-11-22 : ERROR
2019-11-22 : ERROR
2019-11-20 : ERROR
Total ERROR in the logfile: 3log.txt 2019-11-22 16:46:46:46:46 985- main - INFO -开始等待文件2019-11-22 16:46:56,645 - main - INFO -启动:尝试1检查新文件2019-22 16:47:46,488 -主- INFO -成功:从云存储下载文件:返回
2019年-11-22 16:48:48:48- main - ERROR -失败:等待文件2019-11-22 16:49:17,918 - main - INFO -开始等待文件2019-11-22 16:49:32,160 -主- INFO -启动:尝试1检查新文件2019-11-22 16:49:39,329 -主-警告-成功:从云存储下载文件:
2019年-11-22 16:53:30,706 --警告-开始等待文件2019-11-22 16:53:48,180 -主-错误-失败:等待文件
2019年-11-20 10:00:00,121 -主-错误-失败:等待文件
发布于 2020-06-27 10:08:00
用于匹配错误行的模式是:
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*\bERROR\b.*$更新后的脚本:
pattern1 = re.compile(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*\bERROR\b.*$')
count = 0
with open('log.txt',encoding='utf-8')as f:
for i in f:
a = re.search(pattern1, i)
if a:
count = count + 1https://stackoverflow.com/questions/62608284
复制相似问题