Python读取TXT文件时出现“ufeff“字符

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)

如此就大功告成了!!!

我的问题解决了,你的呢?

猜你喜欢

转载自blog.csdn.net/qq_43544492/article/details/84401259
今日推荐