我的.txt文件在Python中变成乱码;我该如何解决?

时间:2018-07-22 08:51:54

标签: python file-upload jupyter-notebook

我创建了一个程序,该程序从.txt文件中获取数据,并使用一系列正则表达式将其转换为可用于Pandas Dataframe的有用信息。在测试该程序时,我只是将.txt文件中的数据复制并粘贴到Python中的变量中,而不是上传整个.txt文件。但是,既然我已经完成了所有测试,就无法确定如何以有用的方式上传.txt文件。

我在Google Colab和Jupyter Notebook中都尝试过。这是JN的代码:

file1 = open("sample_file.txt","r")
file1.readlines()

不幸的是,我得到的输出看起来像乱七八糟的(尽管可能是十六进制的)。

'ÿþG\x00a\x00m\x00e\x00 \x00s\x00t\x00a\x00r\x00t\x00e\x00d\x00 \x00a\x00t\x00:\x00 \x002\x000\x001\x008\x00/\x007\x00/\x002\x001\x00 \x006\x00:\x003\x003\x00:\x001\x004\x00\n'

如何解决此问题并使它可读,以便我的程序可以在上面运行?

2 个答案:

答案 0 :(得分:2)

尝试在代码中添加编码。

open(Filename, 'r', encoding='utf-8')

在此处查看更多信息:https://docs.python.org/3/library/functions.html#open

(从此回复中复制: Unicode (UTF-8) reading and writing to files in Python

答案 1 :(得分:1)

文件中的数据编码为UTF-16(小端)。每隔一个字节都是一个空字节(\x00)的事实强烈表明涉及UTF-16的某些变体。

open函数传递一个编码参数,以对数据进行解码。

file1 = open("sample_file.txt","r", encoding="utf-16-le")
file1.readlines()