ホームページ  >  記事  >  バックエンド開発  >  Python でアクセント文字を含む UTF8 CSV ファイルを読み取る方法

Python でアクセント文字を含む UTF8 CSV ファイルを読み取る方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 21:57:30179ブラウズ

How to Read UTF8 CSV Files with Accented Characters in Python?

Python で UTF8 CSV ファイルを読み取る

アクセント付き文字を含む CSV ファイルを Python で読み取るのは、ASCII サポートが限られているため、困難になる場合があります。この記事では、この問題の解決策を検討し、そのようなファイルを読み取ろうとしたときに発生する「UnicodeDecodeError」に対処します。

Unicode 対応 CSV リーダー

アクセント付き文字を処理するには、次のような CSV リーダーが必要です。 Unicode エンコードをサポートします。次のコードは、標準の CSV リーダーを変更します。

<code class="python">def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
    # Decode UTF-8 data into Unicode strings
    csv_reader = csv.reader(unicode_csv_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]</code>

UTF-8 Encoder

元のソリューションでは、エンコードを Unicode 文字列ではなくバイト文字列に誤って適用していました。以下のコードはこの間違いを修正します:

<code class="python">import csv

def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
    csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]</code>

使用例

これで、次のように UTF8 でエンコードされた CSV ファイルを自信を持って読み取ることができます:

<code class="python">filename = 'output.csv'
reader = unicode_csv_reader(open(filename))

# Iterate through the rows, fields
for field1, field2, field3 in reader:
    print field1, field2, field3 </code>

入力データに関する注意エンコーディング

提供されるソリューションでは、入力データがすでに UTF8 エンコーディングであることを前提としていることに注意してください。そうでない場合は、CSV リーダーに渡す前に、decode メソッドを使用して UTF8 に変換できます。

以上がPython でアクセント文字を含む UTF8 CSV ファイルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。