テキスト ファイルを反復処理するときに UnicodeDecodeError を解決するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-03 11:30:29
オリジナル
647 人が閲覧しました

How to Resolve UnicodeDecodeError When Iterating Through Text Files?

「for line in...」イテレータによる UnicodeDecodeError のトラブルシューティング

テキスト ファイルを扱うとき、開発者はよく「for line」のようなイテレータを使用します。 in...」を使用して、ファイルの各行を読み取って処理します。ただし、これによってイライラする UnicodeDecodeError が発生する場合があります。

問題:

次のコードを考慮してください:

<code class="python">for line in open('u.item'):
    # Read each line</code>
ログイン後にコピー

上記のコードを実行するとき場合、次のエラーが発生する場合があります:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
ログイン後にコピー

このエラーは、Python が UTF-8 エンコーディングを使用してファイル内のバイトを解釈しようとしたときに、UTF-8 標準に準拠していないバイトが見つかった場合に発生します。 .

解決策:

この問題の解決策は、ファイルの正しいエンコーディングを決定することです。この場合、ファイルは ISO-8859-1 でエンコードされます。これは、UTF-8 とは異なる文字エンコード スキームです。

エラーを修正するには、ファイルを開くときにエンコードを指定します。

<code class="python">for line in open('u.item', encoding='ISO-8859-1'):
    # Read each line</code>
ログイン後にコピー

デフォルトのエンコーディング「utf-8」を「ISO-8859-1」に置き換えることで、ファイル内のバイトをデコードするために正しい文字エンコーディングが使用され、UnicodeDecodeError が解決されます。

以上がテキスト ファイルを反復処理するときに UnicodeDecodeError を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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