在Python脚本中,运行目录中的所有Python脚本并输出流

2024-09-29 19:20:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文件结构如下所示:

runner.py
scripts/
    something_a/
        main.py
        other_file.py
    something_b/
        main.py
        anythingelse.py
    something_c/
        main.py
    ...

runner.py应该查看scripts/中的所有文件夹,然后运行位于那里的main.py。你知道吗

现在我通过subprocess.check_output来实现这一点。它可以工作,但其中一些脚本需要很长时间才能运行,我看不到任何进展;它会在进程完成后打印所有内容。你知道吗

我希望找到一个解决方案,让两件事可以做得比较容易:

1) Stream the output instead of getting it all at the end

2) Doesn't prohibit running multiple scripts at once

这可能吗?我见过的许多从另一个脚本运行Python脚本的解决方案都需要了解另一个脚本的名称/位置。如果有帮助的话,我也可以强制所有的main.py都有一个特定的函数。你知道吗


Tags: 文件thepy脚本outputmainscripts解决方案
1条回答
网友
1楼 · 发布于 2024-09-29 19:20:26

您可以使用Popen循环遍历每个文件,并将其内容写入多个日志文件。然后,您可以实时读取这些文件,同时填充每个文件。:)

如何将输出转换为可读性更强的格式,由于可读性的原因,有点棘手。您可以使用Popen创建另一个脚本来读取这些日志文件,并决定如何以可理解的方式读回这些信息。你知道吗

""" Use the same command as you would do for check_output """
cmd = ''

for filename in scriptList:
   log = filename + ".log"
   with io.open(filename, mode=log) as out:
        subprocess.Popen(cmd, stdout=out, stderr=out)

相关问题 更多 >

    热门问题