Jad*_*ias 4 python file-io utf-8 python-3.x
我正在迭代一个文件
for line in io.TextIOWrapper(readFile, encoding = 'utf8'):
Run Code Online (Sandbox Code Playgroud)
当文件包含以下行时
b'"""\xea\x11"\t1664\t507\t137\t2\n'
Run Code Online (Sandbox Code Playgroud)
这会产生以下异常
UnicodeDecodeError:'utf-8'编解码器无法解码位置3中的字节0xea:无效的连续字节
如何让我的脚本忽略这些行并继续使用好的行?
如果你真的想忽略整行,如果它有任何无效字符,你必须知道有无效字符.这意味着你不能使用TextIOWrapper,而必须手动解码线.你想要做的是:
for bline in readFile:
try:
line = bline.decode('utf-8')
except UnicodeDecodeError:
continue
# do stuff with line
Run Code Online (Sandbox Code Playgroud)
但请注意,这不会给您与使用文本文件相同的换行符; 如果你需要,你也需要明确这一点.
| 归档时间: |
|
| 查看次数: |
2363 次 |
| 最近记录: |