Я созданный сценарий и препроцессором большой CSV для импорта в базу данных:Как пропустить исключение кодирования перечисления в python3?
with open(sys.argv[1], encoding='utf-16') as _f:
for i, line in enumerate(_f):
try:
.... some stuff with line ...
except Exception as e:
...
Но в какой-то момент он дает мне исключение на enumerate
:
...
File "/Users/elajah/PycharmProjects/untitled1/importer.py", line 94, in main
for i, line in enumerate(_f):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/codecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings/utf_16.py", line 69, in _buffer_decode
return self.decoder(input, self.errors, final)
UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x00 in position 0: truncated data
...
Как пропустить ломаные линии в файле не прерывая сценарий течь ?
Спасибо, я пробовал это, но в этом случае это происходит во время вызова функции enumerate, и единственное возможное решение, которое я вижу, - это не использовать его ... –
Вы можете поместить все 'for ... в элементе enumarate() 'внутри блока' try: '. Но, вероятно, было бы лучше использовать 'try:' в вашем скрипте 'importer.py', где произошла первоначальная ошибка, и попытайтесь исправить там ошибку. – C14L