1
我有一個文件夾結構是這樣的:如何從命令行導入,然後遍歷導入的模塊?
package_name/
|-- module1
|-- module2
|-- module3
我需要做的是import package_name
,然後遍歷每個模塊,在他們運行的代碼此起彼伏。導入是在命令行給出的,所以我無法提前控制它。因此,用戶可能會說,run_script.py --modules='package_name.module1'
或用戶可能會簡單地說,run_script.py --modules='package_name
。
我可以做from package_name import *
,這將導入在我的__all__
變量__init__.py
中定義的所有東西,但從那裏我有點難住。
對於我的下一個步驟,我需要做的一種方式:
def import_by_path(path):
if '.' not in path:
return __import__(path, globals(), locals())
path, module = path.rsplit('.', 1)
mod = __import__(path, globals(), locals(), [module])
try:
return getattr(mod, module)
except AttributeError:
raise ImportError, "Could not import %s" % path
使用這樣的:
for module in imported:
module.run()
我沒有按照原樣使用它,但它給了我所需的所有方向來理清我自己的技術。謝謝! – mlissner 2012-03-02 20:08:36