У меня есть текстовый файл с двумя колонками значений времени, как это:ValueError: непрореагировавший данные остаются:
21: 28: 07.638502 21: 28: 07,636
Да, один столбец имеет дополнительные цифры для время. Я пытаюсь просто прочитать все строки, получить разницу во времени в микросекундах ... и т. Д.
Если я попробую что-то вроде следующего, я получу ошибку.
import datetime
format="%H:%M:%S.%f"
with open(file) as fh:
for line in fh.readlines():
line.strip()
[a,b]=line.split(' ')
dta=datetime.datetime.strptime(a,format)
dtb=datetime.datetime.strptime(b,format)
diff=dta-dtb
print(diff.microseconds)
Я не уверен, откуда берутся «неотвержденные данные». В сообщении об ошибке ничего не осталось после «останков:». Какие данные остались?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/root/.pyenv/versions/3.5.1/lib/python3.5/_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/root/.pyenv/versions/3.5.1/lib/python3.5/_strptime.py", line 340, in _strptime
data_string[found.end():])
ValueError: unconverted data remains:
Вы на самом деле не нужна полоса вообще, если вы просто использовать, 'а, b = line.split() '. Кроме того, объекты файлов итерабельны, поэтому нет необходимости в чтениях, просто перебирайте файл-объект. –
Вы можете улучшить читабельность вашего кода с помощью 'a, b = line.split()'. Не нужно писать '[a, b]', поскольку в этом контексте 'a, b' строит кортеж, членами которого являются те, которые возвращаются' line.split'. 'str.split' по умолчанию использует пробел как разделитель, поэтому не нужно явно указывать его. – ForceBru