如何使用python从日志文件(文本文件)检索开始和结束时间

如何使用python从日志文件(文本文件)检索开始和结束时间,python,time,Python,Time,我有一堆日志文件,我想从所有日志文件中获取开始和结束时间,并使用python导出到excel。日志文件如下所示: with open('file.log') as file: log = file.read() start = re.search(r'opened\s.*\son', log).group().replace('opened ', '').replace(' on', '') end = re.search(f'closed\s.*$', log).gr

我有一堆日志文件,我想从所有日志文件中获取开始和结束时间,并使用python导出到excel。日志文件如下所示:

with open('file.log') as file:
    log = file.read()

    start = re.search(r'opened\s.*\son', log).group().replace('opened ', '').replace(' on', '')
    end = re.search(f'closed\s.*$', log).group().replace('closed ', '')

    print(f'Start: {start} End: {end}')
C:\Program Files\App.exe版本15.0.1711.3912于M40001A于19年9月12日10:08:13打开 [12/09/2019 10:08:13.723]
3
19772
低频
NORMAL
NONE
CONFIG
NONE
[12/09/2019 10:08:13.727]
4
19772
低频
NORMAL
NONE
CONFIG
NONE
[12/09/2019 10:08:13.727]
5
19772
LOW_FREQ
NORMAL
NONE
CONFIG
NONE
[12/09/2019 10:08:13.727]
6
19772
LOW_FREQ
NORMAL
NONE
DATA
NONE
曝光前变量列表为空。 C:\Program Files\App.exe版本15.0.1711.3912于19年9月12日10:21:11关闭


谢谢

如果所有日志看起来都一样,并且您已经将文件加载为
txt
以下代码提取开始和结束时间

txt=”“”C:\Program Files\App.exe版本15.0.1711.3912于M40001A[12/09/2019 10:08:13.723]319772低频正常非配置无[12/09/2019 10:08:13.727]419772低频正常非配置无[12/09/2019 10:08:13.727]519772低频正常非配置无[12/09/2019 10:08:13.727]619772 Low_FrequencNormalNoneDataNonePre-Exposure变量列表为空。C:\Program Files\App.exe版本15.0.1711.3912关闭19年9月12日10:21:11”“”
start=“”.join(txt.split(“opened”)[1]。split(“”[:2])
end=”“.join(txt.split(“”[-2:])
#end=txt[-17:]#可选
对于第二部分,您可以列出目录中的所有日志文件并提取开始和结束

def-fun(txt):
start=“”.join(txt.split(“opened”)[1]。split(“”[:2])
end=”“.join(txt.split(“”[-2:])
返回[开始,结束]
lst=[f表示os.listdir(“log_文件夹”)中的f,如果f[-4:][=>.log”]
现在需要循环
lst
打开每个文件,并对文本应用
fun
。假设您有一个有趣的
阅读日志
,那么您就可以

out=[fun(读取日志(f))表示lst中的f]
作为pd进口熊猫
df=pd.DataFrame(out,columns=[“start”,end”])
df.to_csv(“from_logs.csv”,index=False)

您可以使用以下内容解析日期:

with open('file.log') as file:
    log = file.read()

    start = re.search(r'opened\s.*\son', log).group().replace('opened ', '').replace(' on', '')
    end = re.search(f'closed\s.*$', log).group().replace('closed ', '')

    print(f'Start: {start} End: {end}')
这将得到:

>>> Start: 12/09/19 10:08:13 End: 12/09/19 10:21:11