在Python中读取文件时出现UnicodeDecodeError错误,如何忽略该错误并跳到下一行?

15 浏览
0 Comments

在Python中读取文件时出现UnicodeDecodeError错误,如何忽略该错误并跳到下一行?

我需要将一个文本文件读入Python。文件编码是:

file -bi test.csv 
text/plain; charset=us-ascii

这是一个第三方文件,我每天都会得到一个新的文件,所以我宁愿不对它进行更改。该文件包含非ASCII字符,比如Ö。我需要使用Python读取这些行,并且我可以忽略包含非ASCII字符的行。

我的问题是,当我在Python中读取文件时,当遇到包含非ASCII字符的行时,我会遇到UnicodeDecodeError错误,无法读取文件的其余部分。

有没有办法避免这个问题。如果我尝试这样做:

fileHandle = codecs.open("test.csv", encoding='utf-8');
try:
    for line in companiesFile:
        print(line, end="");
except UnicodeDecodeError:
    pass;

然后当错误发生时,for循环结束,我无法读取文件的剩余部分。我想跳过导致错误的行并继续进行。如果可能的话,我宁愿不对输入文件进行任何更改。

有没有办法做到这一点?

非常感谢。

0