江湖散人 发表于 2021-4-27 21:42:05

打开文件的操作


file=open('txt.txt','r',encoding='UTF-8')
print(file.readlines())
file.close()

txt.txt这个文件里存了三行(中国,美丽,地广)
结果:
['\ufeff中国\n', '美丽\n', '地广\n']

为啥中国前边多了那几个字母啊?

wp231957 发表于 2021-4-27 21:51:11

用16进制查看器查一下该文件的内码,看一下到底是啥东东

江湖散人 发表于 2021-4-27 22:00:50

wp231957 发表于 2021-4-27 21:51
用16进制查看器查一下该文件的内码,看一下到底是啥东东

前辈,什么是16进制查看器啊?小白一枚,真心不懂?

591821661 发表于 2021-4-27 22:08:43

本帖最后由 591821661 于 2021-4-27 22:10 编辑

这是因为你保存 txt 文件时带有 bom(Byte Order Mark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码)


你用这个代码替换试试

file=open('txt.txt','r',encoding='utf-8-sig')

江湖散人 发表于 2021-4-27 22:17:28

591821661 发表于 2021-4-27 22:08
这是因为你保存 txt 文件时带有 bom(Byte Order Mark,字节顺序标记,出现在文本文件头部,Unicode编码标 ...

你的代码确实解决了多余的字母,但是我保存txt文件的时候,确实格式UTF-8的格式,我刚才还试了,还是不行,只有加上你的sig才可以,不知道为啥?
页: [1]
查看完整版本: 打开文件的操作