Python将\ n读为字符串

时间:2015-04-12 17:19:03

标签: python python-2.7 osx-yosemite

我正在使用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是否应该出现在输出中?如果是这样,我如何修改代码,以便它们不会?

3 个答案:

答案 0 :(得分:3)

您可以添加replacestrip功能。

永远不要将您的列表命名为"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