に行毎にファイルを読み取り中:Pythonの3ではキャッチ例外次のコードを検討のPython 3
with open('file.txt', 'r') as f:
for line in f:
print(line)
を、インタプリタはUnicodeDecodeError
のような例外につながるかもしれない、それは読み込み、文字列を、復号を試みます。これらはもちろんループ全体でブロックtry ... except
で捕まえることができますが、私はそれらを1行単位で処理したいと思います。
質問:読み取られた各行の例外を直接キャッチして処理する方法はありますか?うまくいけば、あまりにも多くのファイルを反復処理の単純な構文を変更することなく?
オープン後「の行の前に試みを入れていない理由f "で?? – ddor254
申し訳ありませんが、私がここで何をしているのか明確にしていない場合は、その行のいずれかが例外になってもファイルを読むことができます。 – piripiri
[開くには 'errors' argを指定できます](https://docs.python.org/3/library/functions.html#open)。データが本当に悪い場合は、バイナリモードで開いて、各行を明示的にデコードする必要がありますが、それは遅いです。 –