私はこのような時間値の2列のテキストファイルがあります:はい、1列のための余分な数字を持っている07.636とValueError:未変換データが残っている:
:
21:28:07.638502 21:28時間。私はちょうどすべての行を読んで、マイクロ秒単位で時差を得ようとしています...
私は次のようなものを試してみるとエラーになります。
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() '。また、ファイルオブジェクトは反復可能であるため、readlineは必要ありません。ファイルオブジェクトを反復処理するだけです。 –
'a、b = line.split()'でコードの可読性を向上させることができます。この文脈のように '[a、b]'を書く必要はなく、 'a、b'はタプルを構成します。メンバーは' line.split'によって返されたものです。 'str.split'は、デフォルトで区切り文字として空白を使用するため、明示的に指定する必要はありません。 – ForceBru