1

该文件的内容如下所示:

1/15/13,930,1441.5
1/15/13,1000,1442.75
1/15/13,1030,1444

我跑:

the_txt_file = open('/txt_file')   

然后我运行:

the_txt_file_as_a_list =  the_txt_file.readlines()

然后我运行:

print the_txt_file_as_a_list

我明白了:

['1/15/13,930,1441.5\r1/15/13,1000,1442.75\r1/15/13,1030,1444\r1/']

但我期待的是这样的:

['1/15/13,930,1441.5\n','15/13,1000,1442.75\n','15/13,1030,1444\n']

这种情况经常发生在我身上,这是怎么回事?

4

2 回答 2

2

所以看来这个问题与我的mac与.txt文件交互的方式有关

通过交换解决了该问题:

the_txt_file = open('/txt_file')   

和:

the_txt_file = open('/txt_file', 'rU')

'rU' 被称为'universal-readline'。以“rU”模式打开文件是以通用读取线模式打开文件。运行时:

the_txt_file_as_a_list =  the_txt_file.readlines()

接着:

print the_txt_file_as_a_list

我的输出来自:

['1/15/13,930,1441.5\r1/15/13,1000,1442.75\r1/15/13,1030,1444\r1/']

至:

['1/15/13,930,1441.5\n', '1/15/13,1000,1442.75\n', '1/15/13,1030,1444\n']

后来,我能够通过以下方式单独打印每个项目:

for item in the_txt_file_as_a_list:
    print item

输出看起来像:

1/15/13,930,1441.5

1/15/13,1000,1442.75

1/15/13,1030,1444
于 2013-01-20T14:32:34.897 回答
1

我假设您或此数据文件的原始创建者在 Mac 上。似乎您期望它是一个简单的 '\n' 行结尾,但会受到原始编辑器系统默认行结尾的影响(很可能)。

一个简单的解决方法是open(...)使用如下rU选项调用:

the_txt_file = open('/txt_file', 'rU')

这确保文件以只读方式打开并在读取特定文件时使用通用换行支持。

祝你好运!

于 2013-01-20T08:21:26.347 回答