遭遇したエラー
Pythonでテキストファイルを読み込むために with open関数を使って次のプログラムを作成しました。
with open('sample.txt', mode='r') as f: print(f.readlines())
しかし、実行すると次のようなエラーが出てしまいました。
UnicodeDecodeError: 'cp932' codec can't decode~
解決策
テキストのエンコード形式が原因でした。
先ほど読み込もうとした「sample.txt」をwindows11のメモ帳で開くと次のようになっていました。
こんな感じでUTF-8形式で記述されたファイルは
encoding="utf-8"
というようにエンコード形式を指定して読み込まないといけないみたいです。
そのため、先ほどのプログラムは以下の様に書き換えると正しく動作します。
with open('sample.txt', mode='r', encoding="utf-8") as f: print(f.readlines())
実行結果
['あいうえおかきくけこ']
「encoding="utf-8"」でエラーが出るとき
逆に「encoding="utf-8"」で次のようなエラーが出る場合もあります。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82~
その場合はテキストのエンコード形式が次のようにUTF-8でない可能性が高いです。
windows11のメモ帳なら保存の時にエンコード形式を選択できるので適切なものを選んで保存しましょう。