33

我是新手,正在尝试制作一个简单的随机句子生成器-如何从存储在另一个 .py 文档中的列表中提取随机项目?我正在使用

random.choice(verb_list) 

从列表中拉出。如何告诉 python verb_list 在另一个文档中?

此外,了解解决方案背后的原理是什么也很有帮助。我想这类似于“文件引用”“文件桥接”等。

4

2 回答 2

79

您可以从文件中导入变量:

变量数据.py

verb_list = [x, y, z]
other_list = [1, 2, 3]
something_else = False

主文件.py

from vardata import verb_list, other_list
import random

print random.choice(verb_list) 

你也可以这样做:

from vardata import *

从该文件导入所有内容。不过要小心。您不想发生名称冲突。

或者,您可以只导入文件并通过其命名空间访问变量:

import vardata
print vardata.something_else
于 2013-01-28T23:30:30.880 回答
10

这叫做导入。

如果这是data.py

verb_list = [
    'run',
    'walk',
    'skip',
]

这是foo.py

#!/usr/bin/env python2.7

import data
print data.verb_list

然后运行foo.py将从verb_list.data.py


您可能需要完成Python 教程的模块部分


如果verb_list存储在您也想做其他事情的脚本中,那么当您只想导入其变量时,您将遇到脚本运行的问题。在这种情况下,标准做法是将所有脚本功能保留在一个名为 的函数中main(),然后使用魔法咒语:

verb_list = [
    'run',
    'walk',
    'skip',
]

def main():
    print 'The verbs are', verb_list

if __name__ == '__main__':
    main()

现在,main()如果您所做的只是import data. 如果您有兴趣,Python 的创建者 Guido van Rossum 写了一篇关于编写更复杂的Pythonmain()函数的文章。

于 2013-01-28T23:18:16.947 回答