我将以下信息存储在名为Lad.txt的文本文件中。这是名称,开始时间和结束时间,不以逗号分隔,每行都在新行上:
Xantippe 09:00 11:00
Erica 10:00 12:06
Marcia 09:30 11:45
Elizabeth 10:15 12:10
Angela 11:30 13:45
Freda 12:00 14:20
Maria 12:30 14:10
我使用以下代码尝试计算每个参赛者的开始和结束时间之间的差异,并按升序将结果打印到文件中。但是,我收到以下错误消息:
Traceback (most recent call last):
File "/Users/pdhalliwelluk/PycharmProjects/Web_Based_Programming/sort_desc.py", line 16, in <module>
scores[values[0]] = time_diff(values[1], values[2])
File "/Users/pdhalliwelluk/PycharmProjects/Web_Based_Programming/sort_desc.py", line 8, in time_diff
end_dt = datetime.datetime.strptime(end, '%H:%M')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains:
代码如下:
from datetime import datetime
def time_diff(start, end):
start_dt = datetime.strptime(start, '%H:%M')
end_dt = datetime.strptime(end, '%H:%M')
diff = (end_dt - start_dt)
return diff.seconds / 60
scores = {}
with open('Lad.txt') as fin:
for line in fin.readlines():
values = line.split(' ')
scores[values[0]] = time_diff(values[1], values[2])
with open('sorted.txt', 'w') as fout:
for key, value in sorted(scores.iteritems(), key=lambda (k, v): (v, k)):
fout.write('%s,%s\n' % (key, value))
答案 0 :(得分:0)
尝试将第13行更改为:
values = line.strip().split(' ')