使用 Python 截取日志文件中指定日期间的日志记录

举报
lu_zhishen 发表于 2021/04/15 17:42:13 2021/04/15
【摘要】 # -*- coding: UTF-8 -*-from dateutil.parser import parseimport restrdate="2021-04-14 10:14:41" # 开始日期enddate="2021-04-14 10:20:42" #结束日期sourceFile="日常申报费用项增加报错.txt"; #被截取的原始文件targetFile="result.log...

# -*- coding: UTF-8 -*-
from dateutil.parser import parse
import re

strdate="2021-04-14 10:14:41" # 开始日期
enddate="2021-04-14 10:20:42" #结束日期
sourceFile="日常申报费用项增加报错.txt"; #被截取的原始文件
targetFile="result.log" # 截取后的日志保存位置

date_pattern = re.compile('\S*\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') # 提取日期
flag=1
result = open(targetFile, "w")
with open(sourceFile.decode('utf-8'),"rb") as f: 
    for fLine in f:
        matches = re.match(date_pattern, fLine)
        if matches:
            a=parse(matches.group(0),fuzzy=True)# 获取的时间如果是指定时间范围内的则保留  
            if parse(strdate) <= a and a <= parse(enddate):
                flag=2
                #print(fLine)
                result.write(fLine.strip('\n'))
            elif(flag==2): # 日期已经大于最大日期
                break
            else:
                flag=1
        elif(flag==2):# 读取非日期行记录
            #print(fLine)
            result.write(fLine.strip('\n'))
result.close()
 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。