pythonでtxtやcsvなどのテキストファイルを読み込もうとした際に
UnicodeDecodeError: 'cp932' codec can't decode byte 0xXX in position X: illegal multibyte sequence
が発生する際の原因と対処法。
エラー原因
エラー原因は文字コード。
ファイルをopenする際に文字コードを指定しないと、ファイル側の文字コードと、開こうとしているpython側の文字コード(Shift-JIS)が合わずにデコードエラーが発生する。
エラーの回避方法
pythonでopenする際に文字コードを指定する事。
前回は書き込みだったが、今回の読み込みでも同様。
-
pandasで作ったCSVファイルをExcelで読みたい
対象がBOM付きのUTF-8であれば
open(ファイル名)
の代わりに
open(ファイル名,encoding="utf-8_sig")
を使うとデコードエラーを起こさずにファイルを読み込むことができる。