python 读取txt出现\xef\xbb\xbf…的问题

读取的时候第一个元素为‘\xef\xbb\xbf1883’,上网看了一些资料,原来在python的file对象的readline以及readlines程序中,针对一些UTF-8编码的文件,开头会加入BOM来表明编码方式。
解决方法有很多种:
1.这篇博客引用codecs模块,来判断前三个字节是否为BOM_UTF8。如果是,则剔除\xef\xbb\xbf字节。
2.另外还有很多解决方案,可以判断列表中是否有\xef\xbb\xbf字符,如果有,用replace()替换为空的,代码如下

fori,lineinzip(range(len(lines)),lines):
if'\xef\xbb\xbf'inline:
line=line.replace('\xef\xbb\xbf','')#剔除第一行的\xef\xbb\xbf字节。
line=line.split('\n')

你可能感兴趣的:(python学习)