假设我正在读取一个包含3个逗号分隔的数字的文件,该文件保存在未知编码方式下,目前我正在处理ANSI和UTF-8。如果文件采用UTF-8格式,并且其中有一行数值为115、113、12,则:
with open(file) as f:
a,b,c=map(int,f.readline().split(','))
会抛出这个异常:
invalid literal for int() with base 10: '\xef\xbb\xbf115'
第一个数字总是和这些'\xef\xbb\xbf'字符搅在一起。对于其余的两个数字,转换工作正常。如果我手动用''替换'\xef\xbb\xbf',然后进行int类型转换,它会起作用。
是否有更好的方法适用于任何类型的编码文件?