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

Posted

技术标签:

【中文标题】如何将标准输出转换为字符串(Python)[重复]【英文标题】:How to get stdout into a string (Python) [duplicate] 【发布时间】:2011-03-29 05:11:24 【问题描述】:

我需要将我通过子进程执行的进程的标准输出捕获到一个字符串中,然后将其放入我正在创建的 wx 应用程序的 TextCtrl 中。我该怎么做?

编辑:我还想知道如何确定进程何时终止

【问题讨论】:

【参考方案1】:

看一下子流程模块。

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

它允许您执行许多可以在 shell 中执行的相同输入和输出重定向。

如果您尝试重定向当前执行脚本的标准输出,只需获取正确的文件句柄即可。在我的脑海中,stdin 是 0,stdout 是 1,stderr 是 2,但请仔细检查。在这一点上我可能是错的。

【讨论】:

【参考方案2】:

来自subprocess documentation:

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

【讨论】:

output = subprocess.Popen("echo hello", stdout=subprocess.PIPE).communicate()[0] 给出“无法找到指定文件”的错误;有什么问题? 如果你想在一个字符串中执行整个命令,你必须通过shell=True。否则,您需要将命令和参数作为字符串列表传递:subprocess.Popen(["echo", "hello"], stdout=subprocess.PIPE).communicate()[0] 它会阻塞程序。

以上是关于如何将标准输出转换为字符串(Python)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将数组字符串转换为数组[重复]

Python - 如何将类似字典的字符串转换为字典[重复]

如何使用 Python 将 MongoDB 的 bsondump 转换为 JSON?

定义python程序时如何将int格式转换为字符串格式[重复]

将字符串数组转换为整数python [重复]

在python中将列表转换为字符串[重复]