使用.readlines()时去掉\n
我有一个.txt文件,里面有一些数值。
这些数值的排列方式是这样的:
Value1
Value2
Value3
Value4
我的目标是把这些数值放到一个列表里。当我这么做的时候,列表看起来是这样的:
['Value1\n', 'Value2\n', ...]
不过,\n
这个符号是不需要的。
这是我的代码:
t = open('filename.txt')
contents = t.readlines()
11 个回答
145
你可以使用 .rstrip('\n')
这个方法来仅仅去掉字符串末尾的换行符:
for i in contents:
alist.append(i.rstrip('\n'))
这样做不会影响到其他的空白字符。如果你不在乎行首和行尾的空白,那么可以用一个更简单的方法,叫做 .strip()
。
不过,因为你是从文件中读取内容,并且反正要把所有内容都加载到内存中,所以更好的做法是使用 str.splitlines()
方法;这个方法可以根据换行符把一个字符串分割成多行,并返回一个没有换行符的行列表;你可以在 file.read()
的结果上使用这个方法,而完全不需要使用 file.readlines()
:
alist = t.read().splitlines()
157
我会这样做:
alist = [line.rstrip() for line in open('filename.txt')]
或者:
with open('filename.txt') as f:
alist = [line.rstrip() for line in f]
555
这个代码应该能满足你的需求(把文件内容按行放到一个列表里,不带\n符号)
with open(filename) as f:
mylist = f.read().splitlines()