Python讀取TXT檔案時出現“ufeff“字元
阿新 • • 發佈:2018-11-28
Python讀取TXT檔案時出現“\ufeff“字元
文章目錄
問題描述:
目的: 在command.txt檔案中讀取文字,然後轉換成數字列表。
這是程式碼內容:
cmd = open("command.txt","rt",encoding = "UTF-8")
datals = []
for line in cmd:
line = line. replace("\n","")
datals.append(line.split(","))
for ls in datals:
print(ls)
報錯:
Traceback (most recent call last):
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\AutoTraceDrew.pys.py", line 15, in <module>
ls[i] = eval(ls[i])
File "<string>", line 1
300
^
SyntaxError: invalid character in identifier
原因:
經過測試通過以上方法打印出的第一行開頭出現“\ufeff”詭異字元。
通過查閱資料發現“\ufeff”叫BOM,用來宣告該檔案的編碼資訊。
所以需要去掉開頭的BOM,程式才能正常執行!!!
如何解決呢?
解決方案:
在讀取目標檔案時,指定編碼方式為“utf-8-sig”即可。其中“sig”全拼為“signature”,意味“帶有標籤的utf-8”。
cmd = open("command.txt","rt",encoding = "UTF-8-sig" ) #指定編碼方式為“utf-8-sig”
datals = []
for line in cmd:
line = line.replace("\n","")
datals.append(line.split(","))
for ls in datals:
print(ls)
如此就大功告成了!!!
我的問題解決了,你的呢?