如何从带有字符串的文件夹中的模块导入内容?

How do I import something from a module in a folder with a string?

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

/folder
    questions.py

__init__.py
app.py

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

欢迎来到 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)