python - 如何在打印到子进程控制台的同时将子进程的输出重定向到文件?
问题描述
我有一个应用程序,在这个应用程序中我运行了一个单独的 Windows 应用程序,它产生了自己的终端。当这个单独的应用程序运行时,我可以将输出重定向到一个文件,如下所示
process = subprocess.Popen([self.app, self.app_s],
stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
print(line)
file.write(line)
process.wait()
但是,如果这样做,我将无法再打印到子进程的控制台,而只能打印到主应用程序的控制台。
有没有办法我可以继续在子进程的控制台中查看输出,同时还将输出记录到文件中?
解决方案
通过以下方式,您可以写入所有您想要的地方。
process = subprocess.Popen([self.app, self.app_s],
stdout=subprocess.PIPE)
for line in proc.stdout:
sys.stdout.write(line)
file.write(line)
推荐阅读
- html - 用作图像的 SVG 在 iPhone 上模糊不清
- c# - 如何在计时器中以“x”秒开始
- ios - 在 Cocoapods 中使用 UIView .xib
- python - 为什么 Python 不喜欢在 python 字符串中使用双下划线呢?
- .net - 阻止访问 .NET 应用程序域中的 AWS 元数据
- .net - Xamarin.Forms 上的 Azure AD B2C 抛出错误 B2C 'authority' Uri 应该至少有 3 个段
- python - Python 的 AoT 编译器
- c++ - 图像选择区域拉伸到矩形
- javascript - 类似的代码工作方式不同。只是路线略有不同
- python - 使用 tqdm 跟踪芹菜和弦任务的进度?(Python)