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)
如此就大功告成了!!!
我的问题解决了,你的呢?