一尘不染

拆分功能添加:\ xef \ xbb \ xbf…\ n至我的列表

python

我想打开我的file.txt文件并拆分所有数据。

这是我的file.txt

some_data1 some_data2 some_data3 some_data4 some_data5

这是我的python代码:

>>>file_txt = open("file.txt", 'r')
>>>data = file_txt.read()
>>>data_list = data.split(' ')
>>>print data
some_data1 some_data2 some_data3 some_data4 some_data5
>>>print data_list
['\xef\xbb\xbfsome_data1', 'some_data1', "some_data1", 'some_data1', 'some_data1\n']

正如您在此处看到的那样,当我打印我的书时,data_list它将this:\xef\xbb\xbf和this:添加到我的列表中\n。这些是什么,如何从它们中清除清单。

谢谢。


阅读 158

收藏
2020-12-20

共1个答案

一尘不染

您的文件开头包含UTF-8 BOM

要摆脱它,首先将文件内容解码为unicode。

fp = open("file.txt")
data = fp.read().decode("utf-8-sig").encode("utf-8")

但是最好不要将其编码回utf-8,而是使用unicoded文本。有一个好的规则:尽快将所有输入文本数据解码为unicode,并且只能与unicode一起使用;并尽可能晚地将输出数据编码为所需的编码。这将使您免于很多头痛。

要以某种编码读取较大的文件,请使用io.opencodecs.open

还要检查一下

使用str.strip()str.rstrip()除去换行符\n

2020-12-20