我有一个。txt文件的值。
这些值如下所示:
Value1
Value2
Value3
Value4
我的目标是将值放在一个列表中。当我这样做时,列表看起来像这样:
['Value1\n', 'Value2\n', .〕
\n不需要。
这是我的代码:
t = open('filename.txt')
contents = t.readlines()
我有一个。txt文件的值。
这些值如下所示:
Value1
Value2
Value3
Value4
我的目标是将值放在一个列表中。当我这样做时,列表看起来像这样:
['Value1\n', 'Value2\n', .〕
\n不需要。
这是我的代码:
t = open('filename.txt')
contents = t.readlines()
当前回答
打开文件后,列表理解可以在一行中完成:
fh=open('filename')
newlist = [line.rstrip() for line in fh.readlines()]
fh.close()
记得之后关闭你的文件。
其他回答
这应该是你想要的(文件内容在一个列表中,按行,不\n)
with open(filename) as f:
mylist = f.read().splitlines()
打开文件后,列表理解可以在一行中完成:
fh=open('filename')
newlist = [line.rstrip() for line in fh.readlines()]
fh.close()
记得之后关闭你的文件。
对于列表中的每个字符串,使用.strip()来移除字符串开头或结尾的空白:
for i in contents:
alist.append(i.strip())
但是根据您的用例,使用numpy之类的东西可能会更好。Loadtxt或者numpy。如果需要从文件中读取的数据数组,则使用Genfromtxt。
from string import rstrip
with open('bvc.txt') as f:
alist = map(rstrip, f)
注意:rstrip()去掉了空白,也就是说:\f, \n, \r, \t, \v, \x和空白, 但我想你只对行中重要的字符感兴趣。然后,仅仅map(strip, f)将更好地适合,同时删除标题空白。
如果你真的只想消除NL \n和RF \r符号,请执行以下操作:
with open('bvc.txt') as f:
alist = f.read().splitlines()
没有传入参数的splitlines()不保留NL和RF符号(Windows在行末记录NLRF文件,至少在我的机器上是这样),但保留其他空白,特别是空格和制表符。
.
with open('bvc.txt') as f:
alist = f.read().splitlines(True)
效果与
with open('bvc.txt') as f:
alist = f.readlines()
也就是说NL和RF被保留
我使用strip函数来消除换行符,因为分割行会在4 gb的文件上抛出内存错误。
示例代码:
with open('C:\\aapl.csv','r') as apple:
for apps in apple.readlines():
print(apps.strip())