繁体   English   中英

在Python中捕获控制台输出

[英]Capturing console output in Python

例如,我可以捕获命令行执行的输出

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界面的问题。 vlc.exe可能有一些选项,因此它不会在新窗口中启动控制台或提供输出。 一般来说,没有任何东西可以阻止我运行一个运行另一个进程的进程,并且不向我的进程的调用者提供它的输出。

请注意,在第二个命令中,您有多个参数(-I,rc和文件名 - XYZ.avi),在这种情况下,您的cmd变量应该是 - 要运行的命令列表,然后是所有该命令的参数:

试试这个:

import subprocess
cmd=['vlc.exe',  '-I', 'rc', 'XYZ.avi']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
print output

如果您没有从右侧目录运行脚本,则可能需要为cmd var中的vlc.exe和XYZ.avi提供绝对路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM