我已经彻底搜索了答案,但没有找到任何解决方案。
我只需要暂时执行子进程来打印其版本信息。如果从命令行运行,它只是
.\bin\application.exe --version
并将版本信息打印到终端。我想用字符串捕获那些信息。我一直在尝试
的变体args = ("path\to\application.exe", "--version")
subprocess.Popen(args, stdout=subprocess.PIPE).communicate()[0]
没有成功。如果可能的话,我还需要将输出打印到终端。我该怎么办?
答案 0 :(得分:3)
有时应用程序会将版本信息转储到STDERR而不是STDOUT。
你可以像这样捕捉:
args = ("path\to\application.exe", "--version")
subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0]