Импортируйте и запустите все модули в папке - PullRequest
0 голосов
/ 24 мая 2018

Есть ли способ импортировать и запустить все файлы .py в папке?

По сути, я думаю, что pytest делает свое тестовое обнаружение.

Кажется, что я хотел бы импортировать из пути к файлу в список, а затем перебрать список, вызывая .main (* args)на каждом модуле.

Также требуется совместимость с Python 2 и 3

Пример

  • start.py
  • вещи /
    • mod1.py
      • main (* args):
    • mod2.py
      • main (* args):

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать importlib.Предположим следующую простую структуру каталогов:

  • a.py
  • b.py
  • c.py

a.py иb.py содержит следующую простую функцию:

def main(name):
    print name

В c.py мы можем перебирать наш каталог и использовать importlib.import_module для импорта каждого файла.Мы должны обеспечить доступность импортированных модулей на глобальном уровне, иначе они будут локальными только для цикла for.

c.py:

import importlib

files = ['a', 'b']

for f in files:
    globals()[f] = importlib.import_module(f)

a.main('adam')
b.main('ben') 

Запуск c.py производит следующий вывод:

adam
ben
...