问题描述
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