如何将文本文件中的项添加到列表中?

时间:2016-02-07 17:59:29

标签: python python-3.x

我已经尝试过了:

with open('names.txt', 'r') as f:
    myNames = f.readlines() 

我在堆栈溢出时发现了多种其他方式,但它们并没有完全符合我的需要。

我有一个文本文件,其中一行包含多个单词ex: FLY JUMP RUN

我需要在列表中使用这些,但它们是列表中的单独元素,如:

['FLY', 'JUMP', 'RUN']

除了使用我在堆栈溢出时找到的方法时,我得到: ['FLY JUMP RUN']

但我需要将它们分开,因为我在列表中使用了random.choice方法。

2 个答案:

答案 0 :(得分:1)

正如评论中提到的,你应该尝试

myNames = None
with open('names.txt', 'r') as f:
    myNames = f.read().split()

假设文件按您说的方式书写。当然,没关系,因为split()的默认行为是使用空格和换行符这样的空白字符来拆分字符串,所以如果你的文件包含

One Two
Three

然后

f.read().split()

仍会返回

["One", "Two", "Three"]

答案 1 :(得分:0)

@Trey:回答你的评论。

没有。 readlines()会将文件的所有内容读入单个列表,而read()只是将其作为单个字符串读取。

试试这段代码:

with open('names.txt', 'r') as f:
    myNames = f.read().split() #split by space

只要行中的单词以空格分隔,这将按照您对任何类型数据的预期工作。