【发布时间】:2011-03-09 16:41:23
【问题描述】:
假设我有一个空列表myNames = []
如何打开每行都有名称的文件并将每个名称读入列表中?
喜欢:
> names.txt
> dave
> jeff
> ted
> myNames = [dave,jeff,ted]
【问题讨论】:
假设我有一个空列表myNames = []
如何打开每行都有名称的文件并将每个名称读入列表中?
喜欢:
> names.txt
> dave
> jeff
> ted
> myNames = [dave,jeff,ted]
【问题讨论】:
with open('names.txt', 'r') as f:
myNames = f.readlines()
其他人已经提供了如何摆脱换行符的答案。
更新:
Fred Larson 在他的评论中提供了一个很好的解决方案:
with open('names.txt', 'r') as f:
myNames = [line.strip() for line in f]
【讨论】:
open(file, 'r') 更改为 open('names.txt', 'r')。 file 是一个内置类型,也不应该用作变量名......否则,很好的解决方案。
strip 合并到这个解决方案中,我可能会这样做:myNames = [line.strip() for line in f]。
myNames = file('names.txt').read().splitlines()
f = open('file.txt','r')
for line in f:
myNames.append(line.strip()) # We don't want newlines in our list, do we?
【讨论】:
names=[line.strip() for line in open('names.txt')]
【讨论】:
#function call
read_names(names.txt)
#function def
def read_names(filename):
with open(filename, 'r') as fileopen:
name_list = [line.strip() for line in fileopen]
print (name_list)
【讨论】:
这应该是 map 和 lambda 的好例子
with open ('names.txt','r') as f :
Names = map (lambda x : x.strip(),f_in.readlines())
我坚持纠正(或至少改进)。列表推导更加优雅
with open ('names.txt','r') as f :
Names = [name.rstrip() for name in f]
【讨论】:
Names = []
for line in open('names.txt','r').readlines():
Names.append(line.strip())
strip() 在字符串前后删减空格...
【讨论】:
读取文件并将每一行放入列表的pythonic方法:
from __future__ import with_statement #for python 2.5
Names = []
with open('C:/path/txtfile.txt', 'r') as f:
lines = f.readlines()
Names.append(lines.strip())
【讨论】: