如何解析日志文件并计算花费的总时间?

问题描述

如果该日志文件与其他任何日志文件一样,则很容易解析。

但是现在我有5个日志文件,其中包含:

Time Log:
2/23/12: 9:10pm - 11:40pm getting familiar with Flash
2/29/12: 12:50pm - 2:00pm getting familiar with Flash
3/1/12: 6:00pm - 11:40pm getting familiar with Flash

如何计算通过解析时间日志文件花费的总时间?

解决方法

只需使用正则表达式从日志文件中解析时间并使用datetime模块计算时差。
请参考下面的代码。

import re
import datetime

log="""2/23/12: 9:10pm - 11:40pm getting familiar with Flash
2/29/12: 12:50pm - 2:00pm getting familiar with Flash
3/1/12: 6:00pm - 11:40pm getting familiar with Flash"""

times=re.findall("(\d{1,2}:\d{1,2}[ap]m)\s*-\s*(\d{1,2}[ap]m)",log)

print(sum([datetime.datetime.strptime(t[1],"%I:%M%p")-datetime.datetime.strptime(t[0],"%I:%M%p") for t in times],datetime.timedelta()))

输出

9:20:00