删除不需要的'\ n'

时间:2014-08-12 09:26:43

标签: python

我正在编写一个程序,用于从文本文件中读取一些indata。数据是字符串和整数的混合。典型文件可能如下所示:

Kiruna
setaim=0
23
34
20
1
1
20

我用

读取文件
f = open(path,'r')
content = f.readlines()

如果我打印内容列表,我会

['Kiruna\n', 'setaim=0\n', '23\n', '34\n', '20\n', '1\n', '1\n', '20\n']

当我想在第一个元素中使用字符串时,' \ n'导致问题,我想删除它。我已经检查了一些其他线程,表明我应该使用方法.strip()或.rstrip()我已经尝试了

content[0].rstrip('\n')

content[0]=content[0].rstrip('\n')

但我得到的只是错误

"TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'"

我该怎么办?

3 个答案:

答案 0 :(得分:6)

with open(path,'r') as f:
    content = [line.rstrip() for line in f] #this should remove all "\n"
print content

<强>输出:

['Kiruna', 'setaim=0', '23', '34', '20', '1', '1', '20']

答案 1 :(得分:3)

content = [x.rstrip() for x in f] # remove all the new lines when file is read

最好使用with打开文件,它会自动关闭它们:

with open(path,'r') as f:
    content = [x.rstrip() for x in f]

答案 2 :(得分:0)

readlines返回迭代器,而不是列表,因此您不能使用index来获取元素。 迭代迭代器,即列表理解,它可以工作。

content = [x.rstrip() for x in f]