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
的所有选项。但仍有相同的行为。是否有任何可能的解决方案?