【发布时间】:2011-03-29 05:11:24
【问题描述】:
我需要将我通过子进程执行的进程的标准输出捕获到一个字符串中,然后将其放入我正在创建的 wx 应用程序的 TextCtrl 中。我该怎么做?
编辑:我还想知道如何确定进程何时终止
【问题讨论】:
我需要将我通过子进程执行的进程的标准输出捕获到一个字符串中,然后将其放入我正在创建的 wx 应用程序的 TextCtrl 中。我该怎么做?
编辑:我还想知道如何确定进程何时终止
【问题讨论】:
看一下子流程模块。
http://docs.python.org/library/subprocess.html
它允许您执行许多可以在 shell 中执行的相同输入和输出重定向。
如果您尝试重定向当前执行脚本的标准输出,只需获取正确的文件句柄即可。在我的脑海中,stdin 是 0,stdout 是 1,stderr 是 2,但请仔细检查。在这一点上我可能是错的。
【讨论】:
from subprocess import *
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
【讨论】:
shell=True。否则,您需要将命令和参数作为字符串列表传递:subprocess.Popen(["echo", "hello"], stdout=subprocess.PIPE).communicate()[0]