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

使用Python编写脚本并通过cmd.stdout()输出结果

发布时间:2023-12-12 14:40:58

编写Python脚本可以使用标准库中的subprocess模块来调用命令行,并通过subprocess.Popen()方法来启动一个新的进程,可以使用stdout参数来捕获命令行输出。

下面是一个简单的示例,展示了如何使用Python编写脚本并通过cmd.stdout()输出结果:

import subprocess

def run_command(command):
    # 使用subprocess.Popen启动一个新的进程,并将标准输出保存到变量cmd中
    cmd = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
    # 使用cmd.stdout.readlines()方法读取所有输出行,返回一个包含所有行的列表
    output_lines = cmd.stdout.readlines()
    # 输出每一行的内容
    for line in output_lines:
        print(line.decode().strip())
    # 等待进程结束,并获取其返回状态码
    cmd.wait()
    # 返回进程的返回状态码
    return cmd.returncode

# 使用例子
if __name__ == '__main__':
    # 调用ipconfig命令,并输出结果
    command = 'ipconfig'
    return_code = run_command(command)
    # 输出进程的返回状态码
    print(f"返回状态码: {return_code}")

在上面的示例中,run_command函数接受一个命令作为参数,使用subprocess.Popen()方法启动新的进程,并将stdout设为subprocess.PIPE,这样命令行的输出就会被保存在cmd变量中。我们使用cmd.stdout.readlines()方法来读取全部输出,并逐行输出。

然后,我们调用cmd.wait()等待进程结束,并使用cmd.returncode获取进程的返回状态码。

最后,在if __name__ == '__main__':语句块中,我们调用了run_command函数来执行ipconfig命令,并通过print语句输出进程的返回状态码。

这样,我们就可以使用Python脚本通过cmd.stdout()输出命令行的结果了。请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。