[英]How do I continue on error in loop condition in python?
我有循環文件的 python 代碼。 我在讀取文件時收到 UTF-8 錯誤(invalid continuation byte)
。 我只是希望我的程序忽略這一點。
我試過使用 try 除了圍繞里面的代碼,但這不起作用,因為錯誤是在 for 循環的條件下。 我也嘗試過在循環周圍使用 try except ,但是當它捕獲到錯誤時,它不會再次啟動循環。
with open(input_file_path, "r") as input_file:
for line in input_file:
# code irrelevant to question
發生的情況是它for line in input_file
給出了這個錯誤:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 5: invalid continuation byte`
我希望它跳過該行並移至下一行。 本質上,在我的 for 循環條件下嘗試捕獲。
這行得通嗎? (編輯為找到的解決方案 OP)
with open(input_file_path, "r", encoding="utf8", errors="surrogateescape") as input_file:
for line in input_file:
try:
yourcode
except:
continue
您是否嘗試過這樣的事情,當引發 UnicodeDecoceError 時,循環將繼續下一次迭代。
with open(input_file_path, "rb") as input_file:
for line in input_file:
try:
line_i = line.decode(encoding='utf-8')
except UnicodeDecodeError:
continue
您可以使用
with open(input_file_path, "r", encoding="ISO-8859-1") as input_file:
for line in input_file:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.