【发布时间】:2014-08-15 20:05:51
【问题描述】:
例如,我可以捕获命令行执行的输出
import subprocess
cmd = ['ipconfig']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
print output
在上面的示例中,ipconfig 很简单,当直接在命令行上运行时,将在同一个控制台窗口上打印输出。但是,在某些情况下,该命令会打开一个新的控制台窗口以显示所有输出。这方面的一个例子是从命令行运行 VLC.exe。以下 VLC 命令将打开一个新的控制台窗口来显示消息:
vlc.exe -I rc XYZ.avi
我想知道如何在 Python 中捕获显示在第二个控制台窗口上的输出。上面的 ipconfig 示例在这种情况下不起作用。
问候
SS
【问题讨论】:
-
根据您需要的输出,可以配置 vlc.exe 将其输出写入日志文件,然后您的程序可以读取该文件,而不是尝试通过管道传输 vlc.exe 的控制台输出.
标签: python subprocess stdout