使用 Python 运行 CMD 命令,打印输出并将输出作为变量获取

Posted

技术标签:

【中文标题】使用 Python 运行 CMD 命令,打印输出并将输出作为变量获取【英文标题】:Running a CMD command with Python, printing the output AND getting the output as variable 【发布时间】:2020-01-07 13:51:01 【问题描述】:

我正在尝试构建一个脚本来使用 pyinstaller 自动构建桌面应用程序。我需要实现的一件事是运行 pyinstaller 命令并将它的输出作为字符串获取以进行进一步处理,同时将任何命令打印到 Powershell 窗口中。现在我只是在使用 os.system() 但这不会将命令的输出作为字符串返回,只有退出代码。

我已经尝试使用 subproces.run(),正如在许多其他问题中所展示的那样,但这并没有向我返回有用的输出,我将命令运行为

result = subprocess.run("pyinstaller app.py", shell=True, stdout=subprocess.PIPE)

正在尝试

result.stdout.decode('utf-8')

获取命令的输出,但没有返回给我。

【问题讨论】:

【参考方案1】:

subprocess.getoutput 可以在 linux 上运行...希望它也可以在 windows 上运行

import subprocess

result = subprocess.getoutput('pyinstaller app.py')
print(result)

【讨论】:

遗憾的是它不会将命令输出打印到控制台。不符合我的要求。 哦,对不起。更新了示例。现在打印了吗? :)

以上是关于使用 Python 运行 CMD 命令,打印输出并将输出作为变量获取的主要内容,如果未能解决你的问题,请参考以下文章

python 利用subprocess调用cmd命令程序,并正确输出控制台的输出中文

python如何获取cmd命令框里的内容

在 Python 中使用 Paramiko 从 top 命令收集输出

如何在java应用程序中连续获取批处理cmd输出

Python:执行cmd命令时读取输出

pythonos.system() & os.popen() 在 python 执行 cmd 指令