我是新手并试图制作一个简单的随机句子 - 如何从存储在另一个.py文档中的列表中提取随机项? 我正在使用
random.choice(verb_list)
从列表中拉出来。如何告诉python verb_list在另一个文档中?
同样了解解决方案背后的原理是有帮助的。我想它就像'文件引用''文件桥接'等等。
答案 0 :(得分:49)
您可以从文件中导入变量:
<强> vardata.py 强>
verb_list = [x, y, z]
other_list = [1, ,2, 3]
something_else = False
<强> mainfile.py 强>
from vardata import verb_list, other_list
import random
print random.choice(verb_list)
你也可以这样做:
from vardata import *
从该文件导入所有内容。但要小心这一点。您不希望发生名称冲突。
或者,您可以导入文件并通过其命名空间访问变量:
import vardata
print vardata.something_else
答案 1 :(得分:5)
这叫做导入。
如果是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
。
您可能希望使用Modules section of the Python tutorial。
如果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撰写了一篇关于撰写更精细Python main()
functions的文章。