use*_*279 56 python python-2.7
可能重复:
Python中的动态模块导入
我正在编写一个小脚本,从目录中获取文件的名称,并将其传递给另一个模块,然后导入该文件.
所以流程就像1)获取模块名称(将其存储在变量中)2)将此变量名称传递给模块3)导入名称存储在变量名称中的模块
我的代码就像
data_files = [x[2] for x in os.walk(os.path.dirname(sys.argv[0]))]
hello = data_files[0]
modulename = hello[0].split(".")[0]
import modulename
Run Code Online (Sandbox Code Playgroud)
问题是当它到达import语句时,它将modulename作为实际模块名称而不是存储在此变量中的值.我不确定它在python中是如何工作的,任何解决这个问题的帮助都会很棒
mgi*_*son 49
你想要内置的__import__功能
new_module = __import__(modulename)
Run Code Online (Sandbox Code Playgroud)
mun*_*unk 30
importlib可能是要走的路.它的文档在这里.__import__对于大多数用途,它通常是优选的.
在您的情况下,您将使用:
import importlib
module = importlib.import_module(module_name, package=None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44805 次 |
| 最近记录: |