如何将子进程的输出重定向到文件,同时仍打印到子进程的控制台?



我有一个应用程序,在这个应用程序中,我运行一个单独的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)

最新更新