python - 复制子进程 popen 的输出以便打印并保存到 PIPE 中?
问题描述
我想以一种subprocess.Popen('echo 1; sleep 1; echo 1', shell=True, stdout=?)
可以让输出出现(在运行时)并且能够将其保存到 PIPE 或文件中的方式运行 a。
到目前为止,我proc = subprocess.Popen('echo 1; sleep 1; echo 1', shell=True, stdout=PIPE, stderr=PIPE)
给了我第二个要求,然后我会打印结果out, err = proc.communicate()
,但是使用communicate
是阻塞的,因此,如果Popen
需要很长时间,我将无法显示输出,这是不可接受的。
我可以以某种方式将该stdout=
字段留空(以启用控制台输出)并将输出复制到 PIPE 吗?
更新。这与Python Popen: Write to stdout AND log file 同时不一样,因为我希望能够在运行期间访问输出,并且那里的解决方案建议访问 proc.stdout,它在运行结束之前一直处于阻塞状态。
解决方案
推荐阅读
- google-chrome-extension - Chrome 扩展程序 - 我可以在上下文菜单中添加搜索字段吗?
- google-data-studio - 创建连接器:在 setId 中使用某些字符时出错
- r - R中的左序二进制矩阵算法
- java - 你如何从并使用servlet在另一个jsp页面上编写/显示它?
- go - 命令“go get github.com/gohugoio/hugo”失败并在期间以 2 退出
- reactjs - 将 Wordpress 网站重定向到反应网站
- ios - 无法弄清楚为什么重新加载数据方法为不同的数据源对象加载相同的数据
- vue.js - 我如何在现有项目中添加 vue 模板
- python - 指定列上的 Numpy 总和
- javascript - 回调是 Web API 绑定与 Javascript 引擎链接的唯一方式吗?