如何将标准输出转换为字符串(Python)

3 投票
2 回答
22460 浏览
提问于 2025-04-16 02:43

我需要把我通过子进程执行的程序的输出结果(stdout)抓取到一个字符串里,然后把这个字符串放到我正在创建的wx应用程序的文本框(TextCtrl)中。我该怎么做呢?

补充:我还想知道怎么判断一个程序什么时候结束。

2 个回答

2

看看这个叫做subprocess的模块。

http://docs.python.org/library/subprocess.html

这个模块可以让你做很多和在命令行里一样的输入输出重定向。

如果你想要重定向当前脚本的输出(也就是stdout),其实只需要找到正确的文件句柄就可以了。记得,stdin是0,stdout是1,stderr是2,不过最好再确认一下。我可能记错了。

10

来自 subprocess 文档

from subprocess import *
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]

撰写回答