使用子进程运行python文件时在python GUI中缓冲问题

时间:2016-07-12 09:50:29

标签: python subprocess

Python GUI控制台由WxPython小部件实现。

当我使用子进程运行一个python文件时,输出将发送到缓冲区。 GUI工具需要一些时间来显示要筛选的缓冲区。因此,使用命令行运行时显示输出的时间会更长。

并且python文件打印太多,因此缓冲区溢出,然后GUI进入未响应状态。

我希望在GUI控制台中将输出显示为实时流。我不知道如何将数据限制到GUI缓冲区并防止它没有响应。

def runOtherScript(self,e):
        cmd = os.path.join(os.getcwd(), "tool", "sample.py")
        cmdlist = ["python", cmd]

        proc = subprocess.Popen(cmdlist, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)

        for line in iter(proc.stdout.readline, ""):
            self.output.write(line)

我已尝试bufsize的所有选项。但仍有相同的行为。是否有任何可能的解决方案?

0 个答案:

没有答案