如何从subprocess.communicate()中捕获python中的流输出
问题描述:
目前,我有这样的事情:
self.process = subprocess.Popen(self.cmd, stdout=subprocess.PIPE) out, err = self.process.communicate()
我正在运行的命令将输出流式传输,在继续之前,我需要阻塞该过程。
如何做到这一点,以便可以捕获流输出并通过stdout打印流输出?设置时stdout=subprocess.PIPE
,我可以捕获输出,但不会打印输出。如果我不进行操作stdout=subprocess.PIPE
,它将打印输出,但communicate()
将返回None
。
有没有一种解决方案可以满足我的要求,即在进程终止/完成之前提供阻塞,并避免此处提到的缓冲区问题和管道死锁问题?
谢谢!
我有一个脚本,用于检查SharePoint列表中的特定文件修订并返回结果。这种方法效果很好,但是目前我的授权方法要求我在代码中包含自己的密码才能访问Share ...