从字符串中解析时间,从输入文件中读取(纯文本)

时间:2019-02-27 09:44:55

标签: python json linux

我使用的是python,我从服务器获取数据并记录日志,所以我每天都需要解析日期和时间,如何才能仅从该文件中打印日期和时间?

fin = open("data.txt","r")
text = fin.read()
new_date_format1= datetime.datetime.strptime('%Y-%m-%d')
print('Today is:',new_date_format1)

例如,我想在运行代码时向我打印此文件中的日期,我不想在代码中写入日期,但是我希望我的代码在文件内搜索并采用%Y格式的日期-%m-%d

`2019-02-27 01:13:41,952 INFO  [stdout] (AsyncAppender-Dispatcher-Thread-104)`


2019-02-27 03:45:20,187 INFO [stdout] (AsyncAppender-Dispatcher-Thread-104)

先谢谢

1 个答案:

答案 0 :(得分:1)

由于您正在使用日志文件,并且显然只需要当前日期,因此您可以搜索(可能很大)日志文件的最后一行,而不用.read()将整个文件读入内存。 这个StackOverflow answer有一个很好的示例,说明了如何查找文件的最后一行。

一旦您在日志文件中提取了最新的行,就应该加上日期。您可以为此使用正则表达式。此正则表达式适用于您指定的格式:

'^\d+-\d+-\d+\w'

末尾的空格\w可防止非贪婪匹配返回错误(短)结果。您以后可以只使用字符串方法.strip()将其删除。

一旦有了日期字符串,就可以使用the options shown in answers to this StackOverflow question中的一个来从中解析日期时间对象。但是,如果仍然要以相同的格式打印它,那么也可以直接打印提取的String。