导入并运行文件夹中的所有模块

时间:2018-05-24 17:23:34

标签: python python-import

有没有办法导入并运行文件夹中的所有.py文件?

基本上我认为pytest是如何进行测试的。

似乎我想从文件路径导入到列表中,然后遍历每个模块上调用.main(* args)的列表。

它还需要兼容python 2和3

实施例

  • start.py
  • 东西/
    • mod1.py
      • 主(*参数):
    • mod2.py
      • 主(*参数):

1 个答案:

答案 0 :(得分:1)

您可以使用importlib。假设以下简单的目录结构:

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

a.pyb.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