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!