Berikut ini adalah kode saya,
for line in open('u.item'):
#read each line
setiap kali saya menjalankan kode ini memberikan error berikut:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Saya mencoba untuk memecahkan masalah ini dan menambahkan parameter tambahan di buka(), kode terlihat seperti;
for line in open('u.item', encoding='utf-8'):
#read each line
Tapi sekali lagi ini memberikan kesalahan yang sama. apa yang harus saya lakukan! Mohon bantuan....
Seperti yang disarankan oleh Mark Tebusan, saya menemukan pengkodean untuk masalah itu. Encoding adalah "ISO-8859-1", sehingga menggantikan terbuka("u.item", encoding="utf-8")
dengan terbuka('u.item', encoding = "ISO-8859-1")
akan memecahkan masalah.
Jika anda menggunakan Python 2
berikut akan solusi:
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# do something
Karena encoding
parameter doesn't bekerja dengan open()
, anda akan mendapatkan error berikut:
TypeError: 'encoding' adalah sebuah kata kunci tidak valid argumen untuk fungsi ini
Jika seseorang mencari untuk ini, ini adalah contoh untuk mengkonversi CSV file di Python 3:
try:
inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
pass
Kadang-kadang ketika terbuka(filepath)
di mana filepath
sebenarnya bukan file yang akan mendapatkan kesalahan yang sama, jadi pertama-tama pastikan file anda'kembali mencoba untuk membuka ada:
import os
assert os.path.isfile(filepath)
berharap ini akan membantu.