当前位置: 首页 > 面试题库 >

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

袁泓
2023-03-14
问题内容

我正在编写一个小脚本,该脚本从目录获取文件名,并将其传递给另一个模块,然后该模块导入文件。

因此流程类似于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语句时,它将modulename读取为真实的模块名称,而不是存储在此变量中的值。我不确定这在python中如何工作,解决这个问题的任何帮助都会很棒


问题答案:

您需要内置__import__功能

new_module = __import__(modulename)


 类似资料:
  • 问题内容: 我正在尝试找到一种通过名称访问模块变量的方法,但尚未找到任何东西。我现在使用的是: 但是它很模糊并且破坏了IDE错误检查(即,在eclipse / pydev import中,myModule被标记为未使用,而在上一行中则需要)。有什么更好的方法吗?可能是我不知道的模块内置功能? 问题答案:

  • 我使用python unittest框架做集成测试。为了消除混淆,我想以“集成测试”的方式继承TestCase类。TestCase”而不是“unittest”。TestCase". 此外,如果我也能做“import integrationtest”而不是“import unittest”,那就更好了,类似于“unittest.main()”,最好用“integrationtest.main()”来

  • 问题内容: 我想导入foo-bar.py。这有效: 这不是: 我的问题:有什么方法可以使用上述格式,即导入其中包含的模块? 问题答案: 你不能。 不是标识符。将文件重命名为 编辑: 如果不是您的目标(例如:您不在乎会发生什么,您不需要导入自身),只需将文件的所有全局变量都放入自己的作用域中,就可以使用

  • 问题内容: 这是我的代码: 有什么帮助吗? 问题答案: 如urllib2文档中所述: 该模块已在Python 3中分为几个名为和的模块。2to3在将源转换为Python 3时,该工具将自动调整导入。 所以你应该说 你当前正在编辑的代码示例不正确,因为你在说urllib.urlopen("http://www.google.com/”)而不是urlopen("http://www.google.co

  • 问题内容: 我正在编写pytest插件,该插件应测试旨在在一组特定环境中运行的软件。 我正在编写的软件在一个更大的框架内运行,这使某些Python模块仅在框架内运行我的Python软件时可用。 为了测试我的软件,我需要“模拟”或伪造整个模块(实际上是很多模块)。我需要以某种类似的方式实现其功能,但是我的问题是,如何使用py.test插件将该虚假的Python模块提供给我的软件代码? 例如,假设我的

  • 问题内容: 我正在编写有关嵌套库的文档(个人),该文档与感兴趣的子模块程序包所提供的MPL有所不同。我正在编写Python脚本,希望该脚本可以自动从将来的MPL版本中生成文档。 我选择了感兴趣的子模块/程序包,并希望列出其主要类,然后从中生成列表并进行处理。pydoc 问题是我找不到指示Python从字符串加载子模块的方法。这是我尝试过的示例: 这是通过pprint比较上述列表的三种方式: 我不明