python, importing a file with a dynamic name
本问题已经有最佳答案,请猛点这里访问。
伙计们,我想动态导入python文件和函数。模块名应该传递给这样的函数:
1 2 3 4 | def scrape(url, foo): modulename = url['modulename'] import modulename modulename.modulename(url, foo) |
这是错误的:
1 | ImportError: No module named modulename |
那么,我们如何让python使用"modulename"作为变量呢?
谢谢!
您可以使用importlib.import_module():
1 2 3 4 | def scrape(url, foo): import importlib modulename = importlib.import_module(url["modulename"]) modulename.modulename(url, foo) |
您也可以使用
1 | module = __import__('module_name') |
例子:
1 2 3 | module = __import__('math') print module.sqrt(4) >> 2 |
或者,如果您也想使用动态方法名称
1 2 3 4 | module = __import__('math') method = getattr(module, 'sqrt') method(4) >> 2 |