如果有的文件有\xef\xbc导致utf-8不能解析,可以这样做
with open('sss.bcp','r',encoding='utf-8') as f:
while True:
try:
data = f.readline()
if data:
print(data)
else:
break
except:
continue
【如果确定个别不能解析的,不需要解析的话】就用
In [15]: with open('sss.bcp','rb') as f_src:
while True:
data = f_src.readline()
if data:
print(data.decode('utf-8','ignore'))
else:
break
小结:使用二进制流去处理,然后对二进制流进行处理转换[decode, ignore]
[补充]
content = b'\x00000123456789\x00\x00\x00'
content.decode().strip('\x00')
>>>content
>>>'000123456789
无论是window还是linux直接使用os.sep
windows下os.sep为\\, linux下os.sep为/