如何导入列表? (蟒蛇)

时间:2014-03-03 19:02:05

标签: python list file import choice

我是Python的新手..(我正在研究它一周左右) 我试图将文件作为列表导入然后我想从中选择一个随机单词以在循环中使用它。我不太清楚怎么做!提前致谢

2 个答案:

答案 0 :(得分:1)

这是一个通用形式的答案:

f = open("path/to/file", "r") # opens the file as read-only
content = f.read() # there are easier ways to do this, but....
### do whatever you're doing here....
f.close() # MAKE SURE YOU CLOSE FILES when you're done with them
# if you don't, you're asking for memory leaks.

你也可以使用上下文管理器,但是阅读起来有点困难:

with open("path/to/file","r") as f:
    content = f.read() # again, this is not the BEST way....
    ### do stuff with your file
# it closes automatically, no need to call f.close()

在文件操作之外,这里是字符串 - >列出的东西:

"a,b,c,d,e,f,g".split(',')
-> ['a','b','c','d','e','f','g']
# str.split creates a list from a string, splitting elements on
# whatever character you pass it.

这里是random.choice

import random

random.choice(['a','b','c','d','e','f','g'])
-> 'c' # chosen by fair dice roll, guaranteed to be random! ;)
# random.choice returns a random element from the list you pass it

答案 1 :(得分:1)

我将举一个包含一些最佳实践的例子:

my_list = [] 

使用上下文管理器with打开文件(如果您有错误,将自动关闭文件,而不是您在此处显示的其他方式),并使用通用读取行,{ {1}},已启用标记(rU是默认值)。

r

with open('/path/file', 'rU') as file: for line in file: my_list.extend(line.split()) # this can represent processing the file line by line 方法将在空格上分割,留下标点符号。如果你真的需要单词,请使用自然语言工具包,这将有助于你更好地保留意义。

您可以使用

一次性阅读整个文件
str.split()

这可能适用于较小的文件,但如果你这样做,请记住较大文件的困难。

使用随机模块选择单词(在大多数情况下,将导入保留在脚本的顶部):

my_list = file.read().split()