Pythonでファイルを読み込む際、特定のエンコーディング(例えばUTF-8)でない文字が含まれていると、UnicodeDecodeError
が発生することがあります。この問題を解決するためには、codecs
モジュールを使用して、ファイルがUTF-8であることを明示し、UTF-8以外の文字が含まれている場合、その行を無視して次の行を読み込むことができます。
以下にそのコードを示します。
import codecs
with codecs.open('file/to/path', 'r', 'utf-8', 'ignore') as f:
for line in f:
line = line.strip()
# つづきの処理
このコードでは、codecs.open
関数を使用してファイルを開き、エンコーディングをUTF-8と指定しています。さらに、’ignore’オプションを指定することで、UTF-8ではない文字が含まれている行を無視して、次の行を読み込むことができます。
この方法を使用すれば、大きなファイルや、どこかからダウンロードしたファイルなど、どの文字がUTF-8ではないのか特定することが難しい場合でも、Pythonでファイルを安全に読み込むことができます。
なお、pandas
での読み込みも同様に対処できます。
import codecs
import pandas as pd
with codecs.open('file/to/path', 'r', 'utf-8', 'ignore') as f:
df = pd.read_csv(f)
このように、Pythonのcodecs
モジュールを使用すると、エンコーディングの問題を効果的に解決することができます。