该文件的内容如下所示:
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']
这种情况经常发生在我身上,发生了什么事?
答案 0 :(得分:2)
所以似乎问题与我的mac与.txt文件交互的方式有关
问题是通过交换解决的:
the_txt_file = open('/txt_file')
使用:
the_txt_file = open('/txt_file', 'rU')
'rU'被称为'通用读取线'。以“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
答案 1 :(得分:1)
我会假设你,或者这个数据文件的原始创建者都在Mac上。看起来你期望它是一个简单的'\ n'行结束,但遭受原始编辑系统默认行结束(最有可能)。
一个简单的解决方法是使用open(...)
选项调用rU
,如下所示:
the_txt_file = open('/txt_file', 'rU')
这样可以确保只打开文件 r ,并在阅读特定文件时使用 U 通用换行支持。
祝你好运!