UnicodeDecodeError: 'utf-8' コーデックはバイトをデコードできません。
以下は私のコードです、
for line in open('u.item'):
#read each line
このコードを実行すると、必ず次のようなエラーが出ます:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
これを解決するために、open()に追加のパラメータを追加しようとしたところ、コードは次のようになりました;
for line in open('u.item', encoding='utf-8'):
#read each line
しかし、また同じエラーが出ます。 どうしたらいいのでしょうか!助けてください。
178
8
Mark Ransomの提案により、その問題に適したエンコーディングを見つけました。そのエンコーディングは "ISO-8859-1" でしたので、
open("u.item", encoding="utf-8")
をopen('u.item', encoding = "ISO-8859-1")
に置換すれば問題は解決します。ISO 8859-1は、主に音声認識APIを使用している場合、大幅に節約できます。
例:
あなたのファイルは実際にはutf-8でエンコードされたデータではなく、他のエンコーディングが含まれています。そのエンコーディングが何であるかを調べ、
open
コールでそれを使用します。例えばWindows-1252のエンコーディングでは、
0xe9
はé
という文字になります。これを試して、パンダを使用して読んでください。
Python 2
を使用している場合、次の解決策があります。encoding
パラメータはopen()
では機能しないため、次のエラーが発生します。次の問題を解決できます。
。 open(your_file_path、 'rb')の行の場合:
。 'rb'はバイナリモードでファイルを読み取っています。 続きを読むここ。 これが役立つことを願っています。!もしこれらを探している人がいたら、これはPython 3でCSVファイルを変換するための例です:
時々「filepath」が実際にファイルではない「open(filepath)」の場合、同じエラーが発生するため、最初に開こうとしているファイルが存在することを確認します。
これが役立つことを願っています。