【发布时间】:2013-03-10 05:42:12
【问题描述】:
我正在使用 Popen 调用一个不断将其标准输出和标准错误写入日志文件的 shell 脚本。有没有办法同时连续输出日志文件(到屏幕上),或者让shell脚本同时写入日志文件和stdout?
我基本上想在 Python 中做这样的事情:
cat file 2>&1 | tee -a logfile #"cat file" will be replaced with some script
同样,这会将 stderr/stdout 一起传送到 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)
【问题讨论】:
标签: python subprocess popen