UnicodeDecodeError dengan "for line in..."
Apabila melelaran melalui baris dalam fail menggunakan "for line in... " sintaks, anda mungkin menghadapi UnicodeDecodeError jika fail mengandungi aksara bukan UTF-8. Ralat ini berlaku kerana pengekodan lalai yang digunakan oleh fungsi open() Python ialah UTF-8, yang mungkin tidak sepadan dengan pengekodan sebenar fail.
Penyelesaian:
Untuk membetulkan ralat ini, anda perlu menentukan pengekodan fail yang betul semasa membuka fail. Cara paling mudah untuk melakukan ini ialah menggunakan parameter pengekodan fungsi open(). Contohnya:
<code class="python">for line in open('u.item', encoding='utf-8'): # Read each line</code>
Walau bagaimanapun, jika fail tidak dikodkan dalam UTF-8, anda perlu menentukan pengekodan yang betul. Dalam kes anda, pengekodan yang betul untuk fail ialah "ISO-8859-1". Untuk menggunakan pengekodan ini, gantikan panggilan open() dengan:
<code class="python">for line in open('u.item', encoding='ISO-8859-1'): # Read each line</code>
Ini sepatutnya menyelesaikan UnicodeDecodeError dan membolehkan anda melelar melalui baris dalam fail dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan UnicodeDecodeError Apabila Membaca Fail dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!