У меня есть следующая информация, хранящаяся в текстовом файле 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))
'readlines()' не раздеться новые линии для вас. – user2357112
@ user2357112 Это то, что вызывает у меня проблемы? Как исправить это? Благодарю. – user3062825
'strip' переходы. (Кроме того, не используйте 'readlines'. Если вам просто нужно перебирать строки,' for line in fin' работает, не читая весь файл в память сразу, если это большой файл.) – user2357112