首页 > 解决方案 > 如何从带有字符串的文件夹中的模块中导入某些内容?

问题描述

如何使用字符串从文件夹中的模块导入某些内容。我尝试使用__import__语句。还有图书馆:importlib。我只是不明白如何使用它。这是我正在尝试做的事情:

/folder
    questions.py

__init__.py
app.py

在 questions.py 中有一本名为 math_questions 的字典,里面有问题和答案。如何使用字符串从 app.py 导入 questions.py?

标签: pythonstringmodulepython-module

解决方案


欢迎来到 SO!

__init__.py在您的文件夹目录中创建一个空文件。

然后在 app.py 中执行:from folder import questionsimport folder.questions as questions

假设 questions.py 有一个名为 foo 的方法或变量,那么您可以按如下方式使用它:

print(questions.foo())

或者如果它是一个变量:

print(questions.foo)

对于 python3:如果你想使用字符串导入文件,你可以使用 exec (确保你信任输入)

lib_to_import = input('Which module to import?')
exec('import %s' lib_to_import)

对于python2:

import importlib
lib_to_import = input('Which module to import?')
mod = importlib.import_module(lib_to_import)

推荐阅读