gpt4 book ai didi

python - 对平面文件中的日期时间值求和

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:32 24 4
gpt4 key购买 nike

我试图对存储在平面文件中的平均时间值进行求和。当我循环时间值时出现错误。

错误:

    Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "/usr/lib64/python2.7/_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains:

不确定错误的确切含义,因为文件中的值均采用相同的格式。

文件

2016-06-03 21:53:48.658115      0:00:00.665788
2016-06-03 21:55:00.009529 0:00:00.867230
2016-06-03 22:09:46.813020 0:00:00.797387
2016-06-04 14:05:05.611144 0:00:00.721815
2016-06-04 14:08:09.029460 0:00:00.744576

代码片段

from datetime import datetime, timedelta
rowCtr = 1
for row in open('data.txt', 'rb'):
date, response_time = row.split('\t')
d = datetime.strptime(response_time, '%H:%M:%S.%f')
dts = d.timedelta(hours=d.hour, minutes=d.minute, seconds=d.second, microseconds=d.microsecond)
sum += dts # not tested
rowCtr += 1

最佳答案

response_time 变量中附加了\r\n(回车符和换行符),导致了此错误。所以我使用 response_time.strip('\n\r') 来删除它们。引用(1)

然后出现了 timedelta 属性错误。

AttributeError: 'datetime.datetime' object has no attribute 'timedelta'

所以我解决了这个问题。引用(2)

第三次要添加 timedelta,变量 sum 需要在顶部初始化为 sum = timedelta(0)。引用(3)

这是可行的解决方案。

from datetime import datetime, timedelta
rowCtr = 1
sum = timedelta(0) # (3)
for row in open('data.txt', 'rb'):
date, response_time = row.split('\t')
d = datetime.strptime(response_time.strip('\n\r'), '%H:%M:%S.%f') # (1)
dts = timedelta(hours=d.hour, minutes=d.minute, seconds=d.second, microseconds=d.microsecond) # (2)
print dts
sum += dts
rowCtr += 1

关于python - 对平面文件中的日期时间值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com