テキストファイルのエンコーディング(windows-1254
など)と読込時に指定したエンコーディング(utf-8
)が異なることが原因で提示エラーが発生しています。
解決方法としては以下が考えられますが、どれを採るかはエラーファイルをどのように扱いたいかによります。
- デコードできない文字は無視して読み込む
- デコード例外を捕捉して処理を飛ばす
- エンコーディングを判定したうえで、正しいエンコーディングを指定して読み込む(動作は未検証)
参考:Pythonにおけるエンコーディング判定
Python
1# 方法1 : デコードできない文字は無視して読み込む
2with open( 'hoge.txt', 'r', encoding='utf-8', errors='ignore') as f:
3 print('[' + f.read() + ']')
4
5# 方法2 : デコード例外を捕捉して処理を飛ばす
6try:
7 with open( 'hoge.txt', 'r', encoding='utf-8') as f:
8 print('[' + f.read() + ']')
9except UnicodeDecodeError:
10 print('UnicodeDecodeError!')
11 # このファイルは飛ばすなどの処理