Ошибка UnicodeDecodeError в Python при чтении файла: как игнорировать ошибку и перейти к следующей строке?
У меня есть задача прочитать текстовый файл в Python. Кодировка файла следующая:
file -bi test.csv
text/plain; charset=us-ascii
Это файл стороннего производителя, и я получаю новый каждый день, поэтому предпочел бы не изменять его. В файле есть нестандартные символы, такие как Ö. Мне нужно читать строки с помощью Python, и я могу позволить себе игнорировать строки, содержащие нестандартные символы.
Моя проблема заключается в том, что при чтении файла в Python возникает ошибка UnicodeDecodeError, когда я достигаю строки, где есть нестандартный символ, и я не могу прочитать остальную часть файла.
Есть ли способ избежать этого? Если я попытаюсь сделать так:
fileHandle = codecs.open("test.csv", encoding='utf-8')
try:
for line in companiesFile:
print(line, end="")
except UnicodeDecodeError:
pass
то когда возникает ошибка, цикл for заканчивается, и я не могу прочитать оставшуюся часть файла. Я хочу пропустить строку, которая вызывает ошибку, и продолжить чтение. Я предпочел бы не вносить изменения во входной файл, если это возможно.
Есть ли какой-либо способ это сделать? Большое спасибо.
"TypeError: требуется объект, похожий на bytes, а не 'str' при обработке содержимого файла в Python 3"
Фиксация количества знаков после запятой с помощью f-строк
Ошибка: "'dict' объект не имеет метода 'iteritems'"
Доступ к атрибутам на литералах работает для всех типов, кроме `int`; почему?
Преобразование байтового массива обратно в массив numpy