Ответ 1
Вы хотите встроенную функцию __import__
new_module = __import__(modulename)
Возможный дубликат:
Динамический модуль импорта в 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, он читает modulename как реальное имя модуля, а не значение, хранящееся в этой переменной. Я не уверен, как это работает в Python, любая помощь в решении этой проблемы будет большой
Вы хотите встроенную функцию __import__
new_module = __import__(modulename)
importlib - это, вероятно, путь. Документация на нем здесь. Обычно для обычно используется более __import__
.
В вашем случае вы должны использовать:
import importlib
module = importlib.import_module(module_name, package=None)