我使用的是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)
先谢谢
答案 0 :(得分:1)
由于您正在使用日志文件,并且显然只需要当前日期,因此您可以搜索(可能很大)日志文件的最后一行,而不用.read()
将整个文件读入内存。
这个StackOverflow answer有一个很好的示例,说明了如何查找文件的最后一行。
一旦您在日志文件中提取了最新的行,就应该加上日期。您可以为此使用正则表达式。此正则表达式适用于您指定的格式:
'^\d+-\d+-\d+\w'
末尾的空格\w
可防止非贪婪匹配返回错误(短)结果。您以后可以只使用字符串方法.strip()
将其删除。
一旦有了日期字符串,就可以使用the options shown in answers to this StackOverflow question中的一个来从中解析日期时间对象。但是,如果仍然要以相同的格式打印它,那么也可以直接打印提取的String。