欢迎访问宙启技术站
智能推送

Python教程:如何利用cmd.stdout()获取控制台输出

发布时间:2023-12-12 14:35:23

在Python中,可以使用subprocess模块来执行命令行命令,并获取命令行输出。其中,stdout属性用于获取标准输出流的内容。

下面是一个简单的例子,展示如何使用subprocess模块以及stdout属性来获取控制台输出:

import subprocess

# 执行命令行命令,并获取标准输出流内容
def get_cmd_output(command):
    try:
        result = subprocess.run(command, capture_output=True, text=True, check=True)
        return result.stdout
    except subprocess.CalledProcessError:
        print("命令执行失败!")
        return None

# 调用示例
output = get_cmd_output(["ls", "-l"])  # 执行ls -l命令
print(output)

在上面的例子中,get_cmd_output函数接受一个命令的列表作为参数,并使用subprocess.run()方法来执行命令并捕获输出。capture_output=True用于捕获输出,text=True用于将输出以字符串形式返回,check=True用于在命令执行失败时抛出异常。

在调用示例中,我们传递了["ls", "-l"]作为命令参数,也就是执行ls -l命令,并将输出赋值给output变量。最后,我们打印出输出内容。

请注意,subprocess.run()方法适用于Python 3.5及以上版本。如果你使用的是Python 3.4或更低版本,你可以使用subprocess.Popen()方法来实现相同的效果。

同时,为了防止命令注入攻击,建议对传递给get_cmd_output函数的命令参数进行严格的验证和过滤。

总结起来,通过使用subprocess模块的stdout属性,我们可以很容易地获取命令行输出,并将其用于各种目的,例如处理命令行工具的输出结果或与其他程序进行交互。