python-3.x - 将 stdout 重定向到文件并在使用 python 子进程遇到 stderr 时终止
问题描述
我正在用 python 3.6 编写一个管道,它在内部执行几个基于命令行的软件。每个内部软件都使用subprocess.run()
. 我想要
- 将每个软件的重定向
stdout
到一个单独的文件, - 如果内部软件产生错误,我想将错误重定向到
stderr
(以便用户可以看到),重定向到单独的文件并终止管道的执行。
我这样做的第一步是:
with open("outfile", "wb", 0) as outfile:
subprocess.run(cmd, stdout=outfile, check=True)
我的问题1是是否有更好的方法来实现相同的目标?管道中有很多命令,我不想为每个命令打开单独的文件。
关于第二个问题,所以我不知道如何解决它:一种方法是将 写入stderr
文件然后检查文件是否为空,但我觉得这是一种错误的做法。
任何建议表示赞赏,
解决方案
推荐阅读
- android - 将复杂的 JSON 对象解析为 Java 对象并添加到 recyclerview
- python - 在 python 中使用 imageio.imread 打开图像
- java - HashMap 与 MultivaluedMap
- azure - 如何将静态文件定义为 Azure 静态网站上的路由?
- scala - 计算 spark RDD 或 DataFrame 中列之间的分隔符并将行移动到单独的 RDD 或数据帧
- python - 如何跳过几行并在熊猫中读取为数据框?
- mongodb - Mongo DB - 尝试创建 AND 条件时出错
- rust - 在声明性宏中构建所有元素对(二次集)
- android - FAB 按钮单击上的自定义操作选择器
- ios - 使用 UIImagePickerController iOS 从画廊上传视频时视频大小发生变化?