Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengendalikan UnicodeDecodeError Apabila Membuka Fail dalam Python?

Bagaimana Mengendalikan UnicodeDecodeError Apabila Membuka Fail dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 13:30:02500semak imbas

How to Handle a UnicodeDecodeError When Opening a File in Python?

UnicodeDecodeError: Mengendalikan Urutan Byte Tidak Sah dalam Pengendalian Fail

Apabila menghadapi ralat "UnicodeDecodeError: codec 'utf-8' tidak boleh menyahkod byte" semasa menggunakan baris for dalam binaan open(...), ia menunjukkan isu dengan pengekodan fail.

Dalam coretan kod yang diberikan, cuba membuka fail dengan pengekodan utf-8 menggunakan open( 'u.item', encoding='utf-8') tidak menyelesaikan isu tersebut. Ini kerana fail mungkin menggunakan pengekodan yang berbeza daripada utf-8.

Untuk menentukan pengekodan yang betul, anda boleh cuba menggunakan perpustakaan chardet untuk menganalisis fail dan mengenal pasti pengekodannya. Sebagai alternatif, anda boleh merujuk kepada dokumentasi atau metadata fail untuk mencari maklumat tentang pengekodan yang digunakan.

Setelah anda menentukan pengekodan yang betul, anda boleh menentukannya dalam fungsi open() seperti berikut:

<code class="python">for line in open('u.item', encoding="encoding_name"):
    # Read each line</code>

Dalam penyelesaian yang disediakan, fail didapati dikodkan dalam "ISO-8859-1", jadi kod yang betul ialah:

<code class="python">for line in open('u.item', encoding="ISO-8859-1"):
    # Read each line</code>

Dengan menyatakan pengekodan yang betul, anda akan dapat menyahkod kandungan fail dengan betul dan mengelakkan UnicodeDecodeError.

Atas ialah kandungan terperinci Bagaimana Mengendalikan UnicodeDecodeError Apabila Membuka Fail 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