Python 開発

pythonでUnicodeDecodeError: 'cp932' illegal multibyte sequence になる

pythonでUnicodeDecodeError: 'cp932' illegal multibyte sequence になる

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")

を使うとデコードエラーを起こさずにファイルを読み込むことができる。

WindowsでCP932(Shift-JIS)エンコード以外のファイルを開くのに苦労した話 - Qiita


KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。
If you felt this article is useful, please share.
にほんブログ村 IT技術ブログへ

-Python, 開発
-

Translate »
Social media & sharing icons powered by UltimatelySocial

Copyright© ITips , 2020 All Rights Reserved.