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

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

  • Sphinx autosummary "toctree содержит ссылку на несуществующий документ" предупреждения
  • API Pinterest - возврат 403 на экземпляр EC2
  • Как сделать запрос POST в robobrowser-python
  • Преобразование словаря Python в массив JSON
  • Определение того, сколько раз подстрока встречается в строке в Python
  • как написать массив python (data = ), чтобы преуспеть?
  • Суммирование списка счетчиков в python
  • AttributeError: объект 'module' не имеет атрибутов 'tests'
  • 2 Solutions collect form web for “импортирование модуля, когда имя модуля находится в переменной”

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

     new_module = __import__(modulename) 

    importlib – это, вероятно, путь. Документация на нем находится здесь . Для большинства применений обычно предпочтительнее __import__ .

    В вашем случае вы будете использовать:

     import importlib module = importlib.import_module(module_name, package=None) 
    Python - лучший язык программирования в мире.