在 Python 中添加时间值
Add time values in Python
我有一个时间列表,格式如下:
小时:分钟:Second.Microseconds
文件如下所示:
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 函数或命令集可以让我将所有这些值加在一起?
我最初使用以下代码 "build" 这些值:
optimize_times = []
starting_time=(datetime.now())
ending_time=(datetime.now())
optimize_times.append(str(ending_time-starting_time))
您可以使用标准库中的 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)
注意这是一个 timedelta
对象的输出。如果这不是您想要的格式,您将需要转换回具有附加逻辑的字符串。
我有一个时间列表,格式如下:
小时:分钟:Second.Microseconds
文件如下所示:
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 函数或命令集可以让我将所有这些值加在一起?
我最初使用以下代码 "build" 这些值:
optimize_times = []
starting_time=(datetime.now())
ending_time=(datetime.now())
optimize_times.append(str(ending_time-starting_time))
您可以使用标准库中的 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)
注意这是一个 timedelta
对象的输出。如果这不是您想要的格式,您将需要转换回具有附加逻辑的字符串。