Muszę przeczytać plik tekstowy w Pythonie. Kodowanie pliku jest:UnicodeDecodeError w Pythonie podczas czytania pliku, jak zignorować błąd i przejść do następnego wiersza?
file -bi test.csv
text/plain; charset=us-ascii
Ten plik jest przez stronę trzecią, i dostać nowy codziennie, więc nie chciałbym go zmienić. Plik nie ma znaków ASCII, takich jak na przykład. Muszę czytać linie używając Pythona i mogę pozwolić sobie na zignorowanie linii, która ma nie-ascii.
Mój problem polega na tym, że kiedy czytam plik w Pythonie, otrzymuję UnicodeDecodeError po osiągnięciu linii, w której istnieje znak inny niż ascii, i nie mogę odczytać pozostałej części pliku.
Czy istnieje sposób, aby tego uniknąć. Jeśli spróbuję tego:
fileHandle = codecs.open("test.csv", encoding='utf-8');
try:
for line in companiesFile:
print(line, end="");
except UnicodeDecodeError:
pass;
to po osiągnięciu błędu pętla for kończy się i nie mogę odczytać pozostałej części pliku. Chcę pominąć linię, która powoduje błąd i iść dalej. Wolałbym nie wprowadzać żadnych zmian w pliku wejściowym, jeśli to możliwe.
Czy jest jakiś sposób to zrobić? Dziękuję bardzo.
Dlaczego używasz 'codecs.open()' w Pythonie 3? 'open()' obsługuje UTF-8 ** w porządku **. –
Próbowałem również używać open, pojawia się ten sam błąd – Chicoscience
Czy wiesz, co naprawdę używa kodowanie pliku? Z pewnością nie jest to "us-ascii", jak pokazano na wyjściu 'file', ponieważ zawiera znaki spoza ASCII. – dano