我正在使用python 2.7.9
和OS X Yosemite。我有一个名为list.dat
的文件,其中包含以下内容:
item1, a
item2, b
item3, c
我有一个python脚本:
list=[]
f=open('list.dat','r')
for line in f.readlines():
list.append(line.rsplit(','))
f.close()
print list
产生输出:
[['item1', ' a\n'], ['item2', ' b\n'], ['item3', ' c']]
\n
是否应该出现在输出中?如果是这样,我如何修改代码,以便它们不会?
答案 0 :(得分:3)
您可以添加replace
或strip
功能。
永远不要将您的列表命名为"list"
,因为list is a python builtin。
list1=[]
f=open('list.dat','r')
for line in f.readlines():
list1.append(line.rsplit(',').strip('\n'))
f.close()
print list1
答案 1 :(得分:2)
'\n'
表示一个新行,显然在您的文本文件中。因此,'\n'
s应该出现在输出中。
基本上,您的.dat
文件是:
item1, a\n
item2, b\n
item3, c\n
要删除它,请尝试以下操作:
list=[]
f=open('list.dat','r')
for line in f.readlines():
list.append(line.strip('\n').rsplit(','))
f.close()
print list
这使用str.strip('\n')
从字符串中删除换行符('\n'
)。
>>> list=[]
>>> f=open('list.dat','r')
>>> for line in f.readlines():
... list.append(line.strip('\n').rsplit(','))
...
>>> f.close()
>>>
>>> print list
[['item1', ' a'], ['item2', ' b'], ['item3', ' c']]
>>>
答案 2 :(得分:1)
'\ n'是换行符。您必须手动删除它或使用csv
- 模块:
import csv
with open('list.dat') as f:
data = list(csv.reader(f))
print data