Вот мой код,
for line in open('u.item'):
#read each line
Всякий раз, когда я запускаю этот код, он выдает следующую ошибку:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Я попытался решить эту проблему и добавить дополнительный параметр в open(), код выглядит следующим образом;
for line in open('u.item', encoding='utf-8'):
#read each line
Но опять выдает ту же ошибку. Что мне делать в таком случае! Помогите пожалуйста.
Как подсказал Марк Рэнсом, я нашел правильную кодировку для решения этой проблемы. Кодировка была "ISO-8859-1", поэтому замена open("u.item", encoding="utf-8")
на open('u.item', encoding = "ISO-8859-1")
решит проблему.
Также работал для меня, ИСО 8859-1 собирается сэкономить много, хахаха, в основном при использовании распознавания речи API и#39;ы
Пример:
file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");
На самом деле ваш файл содержит не данные в кодировке utf-8, а какую-то другую кодировку. Выясните, что это за кодировка, и используйте ее в вызове open
.
Например, в кодировке Windows-1252 символом 0xe9
будет é
.
Если вы используете в Python 2
следующее решение:
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# do something
Потому что кодирование
параметр не't работа с открытой()`, вы будете получать следующее сообщение об ошибке:
в <предварительно> Ошибку TypeError: 'кодирования' недопустимый аргумент сайта для этой функции </пред>
Вы могли бы решить проблему с:
по линии в открытой(your_file_path, 'РБ'):
'РБ' - чтение файла в двоичном режиме. Подробнее здесь.
Надеюсь, что это поможет!
Если кому-то нужны такие примеры, то вот пример преобразования CSV-файла в Python 3:
try:
inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
pass
Иногда когда открыть(путь), в котором
путь_к_файлу` на самом деле это не файл будет сделать ту же ошибку, поэтому сначала убедитесь, что файл, который вы'вновь пытается открыть существует:
import os
assert os.path.isfile(filepath)
надеюсь, что это поможет.