ホームページ > バックエンド開発 > Python チュートリアル > Python でテキスト ファイルを読み取るときに発生する「UnicodeDecodeError」を修正する方法

Python でテキスト ファイルを読み取るときに発生する「UnicodeDecodeError」を修正する方法

Mary-Kate Olsen
リリース: 2024-12-13 00:18:22
オリジナル
473 人が閲覧しました

How to Fix a 'UnicodeDecodeError' When Reading Text Files in Python?

「UnicodeDecodeError」への対処とエンコード変換

テキスト ファイルに保存されているデータを操作しようとすると、次のエラーが発生しました:

Traceback (most recent call last):  
File "SCRIPT LOCATION", line NUMBER, in <module>  
    text = file.read()
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode  
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`  
ログイン後にコピー

このエラーは、想定されているエンコード (CP1252) とファイルの実際のエンコードの不一致が原因で発生します。この問題を解決するには、正しいエンコーディングを特定し、ファイルを開くときに明示的に指定する必要があります。

ファイル エンコーディングの特定

質問に記載されているように、ファイルのエンコーディングは非常に重要です。残念ながら、これは手動で行う必要があります。一般的なエンコーディングには、Latin-1 と UTF-8 が含まれます。ただし、0x90 は Latin-1 では有効な文字ではないため、UTF-8 が有力な候補です。

エンコーディングの指定

エンコーディングを決定したらファイルを開くときに、エンコーディング パラメーターを使用して指定できます。

file = open(filename, encoding="utf8")
ログイン後にコピー

正しいエンコーディングを指定すると、Python はテキスト ファイルを適切にデコードでき、「UnicodeDecodeError」例外が発生することなくその内容を操作できるようになります。

以上がPython でテキスト ファイルを読み取るときに発生する「UnicodeDecodeError」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート