我已经尝试过了:
with open('names.txt', 'r') as f:
myNames = f.readlines()
我在堆栈溢出时发现了多种其他方式,但它们并没有完全符合我的需要。
我有一个文本文件,其中一行包含多个单词ex: FLY JUMP RUN
我需要在列表中使用这些,但它们是列表中的单独元素,如:
['FLY', 'JUMP', 'RUN']
除了使用我在堆栈溢出时找到的方法时,我得到:
['FLY JUMP RUN']
但我需要将它们分开,因为我在列表中使用了random.choice方法。
答案 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
只要行中的单词以空格分隔,这将按照您对任何类型数据的预期工作。