一个变量AA
在aaa.py
. 我想在我的其他 python 文件中使用这个变量bbb.py
如何访问此变量?
您正在寻找模块!
在aaa.py
:
AA = 'Foo'
在bbb.py
:
import aaa
print aaa.AA # Or print(aaa.AA) for Python 3
# Prints Foo
或者这也有效:
from aaa import AA
print AA
# Prints Foo
你可以导入它;这将执行整个脚本。
from aaa import AA
在您的文件bbb.py
中,添加以下内容:
import sys
sys.path.append("/path/to/aaa.py/folder/")
from aaa import AA
还建议阅读有关 Python 模块及其import
工作原理的更多信息。关于模块的官方文档。
尽管导入是最好的方法(如 poke 或 Haidro 写的),但如果您使用一个脚本生成数据并希望在另一个脚本中访问它们,而不执行“ bbb.py
”,这是另一种解决方法。因此,如果您正在处理大型列表/字典,这种方法效果很好,尽管如果您只是尝试交换字符串或数字,这将是一种矫枉过正......</p>
除此之外,您应该更详细地描述您的问题,因为从另一个脚本导入变量有点麻烦,可能不是要走的路。
所以这里有两个函数,第一个 ( dumpobj
) 将变量(字符串、数字、元组、列表、dict 集合等)转储到文件中,第二个 ( loadobj
) 将其读入。我决定使用json
,因为数据文件是人类可读。
如果您经常需要,您可能想尝试一下:
import json
def dumpobj(the_object, filename) :
"""
Dumps the_object to filename via json. Use loadobj(filename)
to get it back.
>>> from tgio import dumpobj, loadobj
>>> foo = {'bar':42, 'narf':'fjoord', 23:[1,2,3,4,5]}
>>> dumpobj(foo, 'foo.var')
>>> bar = loadobj('foo.var')
>>> bar
{u'narf': u'fjoord', u'bar': 42, u'23': [1, 2, 3, 4, 5]}
"""
try:
with open(filename):
print(filename + " exists, I'll will overwrite it.")
except IOError:
print(filename + ' does not exist. Creating it...')
f = open(filename, 'w')
json.dump(the_object, f)
f.close()
def loadobj(filename) :
"""
Retrieves dumped data (via json - see dumpobj) from filename.
>>> from tgio import loadobj, dumpobj
>>> foo = {'bar':42, 'narf':'fjoord', 23:[1,2,3,4,5]}
>>> dumpobj(foo, 'foo.var')
>>> bar = loadobj('foo.var')
>>> bar
{u'narf': u'fjoord', u'bar': 42, u'23': [1, 2, 3, 4, 5]}
"""
try:
with open(filename):
print("Reading object from file " + filename)
except IOError:
print(filename + ' does not exist. Returning None.')
return None
f = open(filename, 'r')
the_object = json.load(f)
f.close
return the_object
请参阅文档字符串中的用法示例!