开卷题库
  • 试卷
  • 讨论区
  • IT 问答
  • 课程返现
  • 登录
  • 注册

当模块名称在变量中时导入模块

可能的复制品:
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

问题是,当它到达 import 语句时,它读取的是模块名,而不是存储在这个变量中的值。我不确定这是如何工作的巨蟒,任何帮助解决这个问题将是巨大的

  • python
  • python-2.7
75498 次浏览
小开
最佳答案

You want the built in __import__ function

new_module = __import__(modulename)
小开

importlib is probably the way to go. The documentation on it is here. It's generally preferred over __import__ for most uses.

In your case, you would use:

import importlib
module = importlib.import_module(module_name, package=None)

提交答案

使用前必读

意见 & 问题反馈

极客学习笔记

ICP 证:鄂ICP备15004824号-2

友情链接