簡體   English   中英

如何在 python 中的循環條件錯誤中繼續?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM