Подтвердить что ты не робот

Импортирование модуля, когда имя модуля находится в переменной

Возможный дубликат:
Динамический модуль импорта в 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, любая помощь в решении этой проблемы будет большой

4b9b3361

Ответ 1

Вы хотите встроенную функцию __import__

new_module = __import__(modulename)