我正在迭代一个文件
for line in io.TextIOWrapper(readFile, encoding = 'utf8'):
当文件包含以下行时
b'"""\xea\x11"\t1664\t507\t137\t2\n'
这会产生以下异常
UnicodeDecodeError:'utf-8'编解码器无法解码位置3中的字节0xea:无效的连续字节
如何让我的脚本忽略这些行并继续使用好的行?
如果你真的想忽略整行,如果它有任何无效字符,你必须知道有无效字符.这意味着你不能使用TextIOWrapper
,而必须手动解码线.你想要做的是:
for bline in readFile: try: line = bline.decode('utf-8') except UnicodeDecodeError: continue # do stuff with line
但请注意,这不会给您与使用文本文件相同的换行符; 如果你需要,你也需要明确这一点.
将errors='ignore'
参数传递给TextIOWrapper
.此处指定了其他可用选项.