我想在Python子流程中启动一个外部应用程序,如下所示:
import subprocess
...
process = subprocess.POpen (shlex.split ("make test-scripts"),
env=my_environment,
stdout=my_logfile, stderr=my_logfile)
result = process.wait ()
因此make命令将启动另一个要测试的应用程序,并且我对在日志文件中捕获的结果输出感兴趣。
除非启动的应用程序也产生自己的进程,否则这种方法很有效。在这种情况下,这些新进程的输出不会出现在我的日志文件中,而是直接在DOS shell中启动上面的python脚本。
有没有办法获得这些" sub sub"的输出?流程呢?
我已经尝试过(但没有奏效):
sys.stdout
和sys.stderr
。'2>&1'
重定向。我发现这个方向的唯一提示是Capture standard output for Python child spawned by external package,但这与Python子进程应用程序有关(我启动的应用程序是用C ++编写的)。