如何在python脚本中获取exe的输出?

新手上路,请多包涵

当我在 Python 中调用外部 .exe 程序时,如何从 .exe 应用程序中获取 printf 输出并将其打印到我的 Python IDE?

原文由 user53670 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

要从 Python 调用外部程序,请使用 subprocess 模块。

subprocess 模块允许您生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回码。

文档中的一个示例( output 是一个提供子进程输出的文件对象。):

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

一个具体的例子,使用 cmd ,带有 2 个参数的 Windows 命令行解释器:

 >>> p1 = subprocess.Popen(["cmd", "/C", "date"],stdout=subprocess.PIPE)
>>> p1.communicate()[0]
'The current date is: Tue 04/14/2009 \r\nEnter the new date: (mm-dd-yy) '
>>>

原文由 gimel 发布,翻译遵循 CC BY-SA 4.0 许可协议

我很确定您在这里谈论的是 Windows(基于您问题的措辞),但在 Unix/Linux(包括 Mac)环境中,命令模块也可用:

 import commands

( stat, output ) = commands.getstatusoutput( "somecommand" )

if( stat == 0 ):
    print "Command succeeded, here is the output: %s" % output
else:
    print "Command failed, here is the output: %s" % output

commands 模块提供了一个极其简单的界面来运行命令并获取状态(返回代码)和输出(从 stdout 和 stderr 读取)。或者,您可以分别通过调用 commands.getstatus() 或 commands.getoutput() 来获取状态或输出。

原文由 Shane C. Mason 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题