Memo plus Alpha

メモにプラスアルファを加えて価値ある情報に。

Python (Jupyter)でファイルが読み込めない問題

エラーの内容

WindowsPython (Jupyter)を使っている場合、ファイルを読み込む際に次のようなエラーが出ることがあります。

 

UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence

 

これは例えばutf-8のファイルを開くときに起きることがありますが、Windowsのデフォルトの文字コードではデコードできないというエラーです。

 

対処法

その対処法としてはcodecsを使って、encodingを指定して開くのが有効のようです。

 

# coding: utf-8
import codecs

f = codecs.open('jikken.txt', mode='a', encoding='utf-8') # 追加書き込みモードで開く
f.write("This is a pen.") #文字列をファイルに書き込む
f.close() #ファイルを閉じる