Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membaca Fail CSV UTF8 dengan Aksara Beraksen dalam Python?

Bagaimana untuk Membaca Fail CSV UTF8 dengan Aksara Beraksen dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 21:57:30275semak imbas

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

Membaca Fail CSV UTF8 dengan Python

Membaca fail CSV yang mengandungi aksara beraksen boleh mencabar dalam Python kerana sokongan ASCIInya yang terhad. Artikel ini meneroka penyelesaian kepada masalah ini, menangani "UnicodeDecodeError" yang dihadapi semasa cuba membaca fail sedemikian.

Pembaca CSV Mesra Unikod

Untuk mengendalikan aksara beraksen, kami memerlukan pembaca CSV yang menyokong pengekodan Unicode. Kod berikut mengubah suai pembaca CSV standard:

<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>

Pengekod UTF-8

Penyelesaian asal salah menggunakan pengekodan pada rentetan bait dan bukannya rentetan Unikod. Kod di bawah membetulkan kesilapan ini:

<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>

Contoh Penggunaan

Kini kami boleh membaca fail CSV yang dikodkan UTF8 dengan yakin seperti berikut:

<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>

Nota tentang Data Input Pengekodan

Ingat bahawa penyelesaian yang disediakan menganggap data input sudah berada dalam pengekodan UTF8. Jika ini tidak berlaku, anda boleh menggunakan kaedah penyahkod untuk menukarnya kepada UTF8 sebelum menghantarnya kepada pembaca CSV.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Fail CSV UTF8 dengan Aksara Beraksen dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn