Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyelesaikan UnicodeDecodeError Apabila Mengulang Melalui Fail Teks?

Bagaimana untuk Menyelesaikan UnicodeDecodeError Apabila Mengulang Melalui Fail Teks?

Barbara Streisand
Lepaskan: 2024-11-03 11:30:29
asal
748 orang telah melayarinya

How to Resolve UnicodeDecodeError When Iterating Through Text Files?

Menyelesaikan masalah UnicodeDecodeError dengan "for line in..." Iterator

Apabila bekerja dengan fail teks, pembangun sering menggunakan iterator seperti "for line dalam..." untuk membaca dan memproses setiap baris fail. Walau bagaimanapun, kadangkala ini boleh menyebabkan UnicodeDecodeError yang mengecewakan.

Masalah:

Pertimbangkan kod berikut:

<code class="python">for line in open('u.item'):
    # Read each line</code>
Salin selepas log masuk

Apabila menjalankan kod di atas , anda mungkin menghadapi ralat berikut:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Salin selepas log masuk

Ralat ini berlaku apabila Python cuba mentafsir bait dalam fail menggunakan pengekodan UTF-8 tetapi menemui bait yang tidak mematuhi piawaian UTF-8 .

Penyelesaian:

Penyelesaian kepada masalah ini terletak pada menentukan pengekodan yang betul untuk fail. Dalam kes ini, fail dikodkan dalam ISO-8859-1, yang merupakan skema pengekodan aksara yang berbeza daripada UTF-8.

Untuk membetulkan ralat, nyatakan pengekodan semasa membuka fail:

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

Dengan menggantikan pengekodan lalai 'utf-8' dengan 'ISO-8859-1', pengekodan aksara yang betul digunakan untuk menyahkod bait dalam fail, menyelesaikan UnicodeDecodeError.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan UnicodeDecodeError Apabila Mengulang Melalui Fail Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan