Python subprocess.PIPE重定向到文件

Python subprocess.PIPE重定向到文件,python,subprocess,Python,Subprocess,我有下面的代码。myprg必须在脚本退出后运行。但在退出之前,我想等待myprg发出mystring,然后将其余的stderr消息重定向到mylogfile,然后退出。这可能吗?我尝试了以下操作,但python脚本没有退出。我哪里做错了 import subprocess proc = subprocess.Popen(myprg, stderr=subprocess.PIPE) for line in iter(proc.stderr.readline,'') if check_string

我有下面的代码。myprg必须在脚本退出后运行。但在退出之前,我想等待myprg发出mystring,然后将其余的stderr消息重定向到mylogfile,然后退出。这可能吗?我尝试了以下操作,但python脚本没有退出。我哪里做错了

import subprocess
proc = subprocess.Popen(myprg, stderr=subprocess.PIPE)

for line in iter(proc.stderr.readline,'')
if check_string in line:
    break

fh = open (mylogfile,'w')

proc.stderr = fh.fileno()

编辑:我暂时解决了这个问题,使myprg向标准输出check_字符串。这不是最理想的,但暂时有效。

是否应该调用
proc.communicate()
以退出脚本?

这也不起作用。即使没有proc.communicate(),我也可以让代码退出,但我无法将任何进一步的stderr消息重定向到磁盘上的文件。