有与此类似的 问题,但我希望看到一个明确的答案。我正在使用 PythonCard 构建一个简单的 GUI 来包装命令行进程。具体来说,它是一系列 ANT 任务和其他自定义操作的包装器,因此非开发人员可以使用它。
我想将子进程的输出重定向到窗口中的 TextArea。看起来这样做的方法是使用subprocess.Popen(command, stdout=subprocess.PIPE)
输出并将其加载到变量中。
问题是如何使用子进程的输出实时更新窗口?欢迎任何提示
谢谢
我也在为此寻找解决方案。事实证明,解决方案非常简单:
proc = subprocess.Popen("whatever program", cwd="startup dir", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
while True:
txt = proc.stdout.readline()
if not txt: break
txt=txt.replace("\r\n","\n").replace("\r\n","\n").replace("\\","\")
self.components。 taStdout.appendText(txt)