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

2023-12-19

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

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

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

它还需要兼容 python 2 和 3

Example

  • start.py
  • things/
    • mod1.py
      • 主要(*参数):
    • mod2.py
      • 主要(*参数):

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

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

a.py and b.py包含以下简单函数:

def main(name):
    print name

In 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') 

Running c.py产生以下输出:

adam
ben
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐