首页 > 解决方案 > 在 Python 中添加时间值

问题描述

我有以下格式的时间列表:

时:分:秒.微秒

文件如下所示:

0:06:50.137529
0:08:55.439963
0:06:19.179093
0:07:16.680906
0:31:55.778010
0:16:56.940836

是否有一个 Python 函数或一组命令可以让我将所有这些值加在一起?

我最初使用以下代码“构建”这些值:

optimize_times = []
starting_time=(datetime.now())
ending_time=(datetime.now())
optimize_times.append(str(ending_time-starting_time))

标签: pythonstringpython-2.7datetimetimedelta

解决方案


您可以datetime.timedelta从标准库中使用:

from datetime import timedelta

L = ['0:06:50.137529', '0:08:55.439963', '0:06:19.179093',
     '0:07:16.680906', '0:31:55.778010', '0:16:56.940836']

def str_to_td(x):
    hrs, mins, sec_micro = x.split(':')
    secs, msecs = map(int, sec_micro.split('.'))
    return timedelta(hours=int(hrs), minutes=int(mins), seconds=secs, microseconds=msecs)

res = sum(map(str_to_td, L), timedelta())

# datetime.timedelta(0, 4694, 156337)

注意 this 的输出是一个timedelta对象。如果这不是您想要的格式,您需要转换回具有附加逻辑的字符串。


推荐阅读