我製作的腳本和預處理大的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 ...在「try:」塊內的enumarate()塊中。但是,在你的'importer.py'腳本中使用'try:'可能會更好,在那裏發生初始錯誤,並嘗試修復那裏的錯誤。 – C14L