我想从目录内的所有模块导入所有变量(最好将它们放在列表中)。
我有以下结构
Foo/
bar1.py
bar2.py
bar3.py
模块包含
# bar1.py
baz1 = "spam"
# bar2.py
baz2 = "chicken"
# bar3.py
baz3 = "milk"
如何形成与所有的变量列表baz1
,baz2
,baz3
没有明确导入它们,并明确将它们添加到列表?换句话说,在添加barx.py
具有另一个变量的另一个模块之后,我希望将该变量隐式加载到列表中。
import os
import importlib
my_path = 'Foo'
lst = [f.rstrip('.py') for f in os.listdir(my_path) if f.endswith('.py')]
all_imported_data = dict()
for item in lst:
module = importlib.import_module(f'{my_path}.{item}')
all_imported_data.update({k: v for k, v in module.__dict__.items() if not k.startswith('_')})
print(all_imported_data)
importlib的文档:https ://docs.python.org/3/library/importlib.html#importlib.import_module
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句