1、用utf-8格式保存的txt文件等,如何去掉BOM頭python
Windows系統的txt文件在使用utf-8編碼保存時會默認在文件開頭插入三個不可見的字符(0xEF 0xBB 0xBF)稱爲BOM頭,這個BOM頭在python的codecs庫中已經定義爲常量(codecs.BOM_UTF8)編碼
方法一:utf8temp.txt保存時選擇utf-8保存spa
1 import codecs 2 data=open("utf8temp.txt",'r',encoding='utf-8').read() 3 data=data.encode(encoding='utf-8') 4 print(data) 5 #print("中文".encode(encoding='utf-8')) 6 print(len(data)) 7 if data[:3]==codecs.BOM_UTF8: 8 data=data[3:] 9 print(data.decode(encoding='utf-8'))
輸出以下:code
b'\xef\xbb\xbf\xe4\xb8\xad\xe6\x96\x87'
9
中文blog
方法二:utf-8
1 with open("./temp.txt","r",encoding='utf-8') as f: 2 flag=1 3 for line in f: 4 if flag==1: 5 line=line[1:]#去掉txt格式爲utf-8會在文件第一行開頭插入 6 # 三個不可見的字符(0xEF 0xBB 0xBF)--(‘.’) 7 flag=0 8 print(line)
方法三:直接用第三方軟件去掉BOM頭,用notepad++打開txt文件,選擇編碼...without BOM,點擊保存it