我正在使用 Popen 调用一个 shell 脚本,该脚本不断将其 stdout 和 stderr 写入日志文件。有没有办法同时连续输出日志文件(到屏幕上),或者让 shell 脚本同时写入日志文件和标准输出?
我基本上想在 Python 中做这样的事情:
cat file 2>&1 | tee -a logfile #"cat file" will be replaced with some script
同样,这将 stderr/stdout 一起传送到 tee,tee 将其同时写入 stdout 和我的日志文件。
我知道如何在 Python 中将 stdout 和 stderr 写入日志文件。我被困的地方是如何将这些复制回屏幕:
subprocess.Popen("cat file", shell=True, stdout=logfile, stderr=logfile)
当然,我可以做这样的事情,但是有没有办法在没有 tee 和 shell 文件描述符重定向的情况下做到这一点?:
subprocess.Popen("cat file 2>&1 | tee -a logfile", shell=True)