2016-10-24 3 views
1

У меня есть текстовый файл с двумя колонками значений времени, как это: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: 
+0

Вы на самом деле не нужна полоса вообще, если вы просто использовать, 'а, b = line.split() '. Кроме того, объекты файлов итерабельны, поэтому нет необходимости в чтениях, просто перебирайте файл-объект. –

+0

Вы можете улучшить читабельность вашего кода с помощью 'a, b = line.split()'. Не нужно писать '[a, b]', поскольку в этом контексте 'a, b' строит кортеж, членами которого являются те, которые возвращаются' line.split'. 'str.split' по умолчанию использует пробел как разделитель, поэтому не нужно явно указывать его. – ForceBru

ответ

4

strip не работает на месте, вы должны назначить его на самом деле удалить символ новой строки:

line = line.strip() 
+0

Я нахожусь. Спасибо –

+0

'line.strip (" ")' также будет сильно отличаться от 'line.strip()' –

+1

@BillyK, вы _not_. Задавать вопросы не значит быть глупыми, поскольку это средство обучения. – ForceBru