我的文件结构如下:
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)传输输出,而不是在最后全部获取
2)不 禁止一次运行多个脚本
这可能吗?我见过的很多用于从另一个脚本运行Python脚本的解决方案都需要了解另一个脚本的名称/位置。我可以还强制要求所有main.py
都具有特定的功能。
答案 0 :(得分:0)
您可以使用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)