Python子进程刷新标准输出

时间:2018-07-06 07:45:30

标签: python stdout

我有一个脚本,该脚本应该遍历我所有的项目(在指定的文件夹中)并调用git status,我想在返回的标准输出中搜索特定的关键字,以检测该项目是否需要执行某些操作(提交,推送,合并...)。关键是,stdout是从当前运行的所有先前调用中堆叠的。因此,每个项目的标准输出还包含其他先前项目的响应!每次新呼叫后,我都无法刷新标准输出。我尝试了类似proc.stdout.flush()的操作,但没有帮助。我当前的代码是:

import os
import subprocess
from subprocess import Popen, PIPE

from glob import glob
dirs = glob("./*/")

pointer = 0
for project in dirs:
    print("\n\n", project)
    try:
        proc = Popen(['git', 'status'], stdout=PIPE, cwd=project)
        print(proc.stdout.readlines())  
    except:
        # not a git
        pass

在每个步骤之后刷新stdout或在“新控制台”中调用Popen的正确方法是什么?

0 个答案:

没有答案