Python子进程将子进程的输出获取到文件和终端?
该脚本会执行多个可执行文件
subprocess.call(cmdArgs,stdout=outf, stderr=errf)
我正在运行一个脚本,当 outf
/errf
为 None 或文件描述符(stdout
的不同文件)时, >/stderr
)。
有什么方法可以执行每个 exe 以便将 stdout 和 stderr 一起写入文件和终端吗?
I'm running a script that executes a number of executables by using
subprocess.call(cmdArgs,stdout=outf, stderr=errf)
when outf
/errf
is either None or a file descriptor (different files for stdout
/stderr
).
Is there any way I can execute each exe so that the stdout and stderr will be written to the files and terminal together?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
call()
函数只是Popen(*args, **kwargs) .wait()
。您可以直接调用Popen
并使用stdout=PIPE
参数从p.stdout
读取:The
call()
function is justPopen(*args, **kwargs).wait()
. You could callPopen
directly and usestdout=PIPE
argument to read fromp.stdout
:你可以使用这样的东西:
https://github.com/waszil/subpiper
在你的回调中你可以做任何你喜欢的事情,记录、写入文件、打印等。还支持非阻塞模式。
You could use something like this:
https://github.com/waszil/subpiper
In your callbacks you can do whatever you like, log, write to file, print, etc. It also supports non-blocking mode.