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

使用getoutput()函数在Python程序中调用外部命令并获取结果

发布时间:2024-01-09 05:45:06

在Python中,可以使用subprocess模块中的getoutput()函数来调用外部命令并获取结果。getoutput()函数会执行传入的命令,并返回命令的输出结果。

下面是一个使用getoutput()函数的示例代码:

import subprocess

cmd = "ls"  # 将要执行的命令

output = subprocess.getoutput(cmd)  # 调用外部命令并获取结果

print(output)  # 输出命令执行结果

上述代码中,我们调用了ls命令来列出当前目录的文件列表,并将结果保存在变量output中。最后,我们打印出了命令的执行结果。

另外一个常见的例子是调用外部的网络工具ping来测试网络连通性。下面是一个示例代码:

import subprocess

host = "www.google.com"

cmd = "ping -c 5 {}".format(host)  # 将要执行的命令

output = subprocess.getoutput(cmd)  # 调用外部命令并获取结果

print(output)  # 输出命令执行结果

上述代码中,我们使用ping命令来测试与谷歌的连通性。使用-c参数来指定ping的次数,并传入主机地址作为参数。然后,我们调用getoutput()函数来执行该命令,并获取结果。最后,我们打印出了命令的执行结果。

除了使用getoutput()函数外,还可以使用subprocess.run()函数来调用外部命令并获取结果。run()函数提供了更多的控制选项,但是返回的是一个CompletedProcess对象,需要通过stdout属性来获取命令的输出结果。

以下是使用run()函数的示例代码:

import subprocess

cmd = "ls"  # 将要执行的命令

result = subprocess.run(cmd, shell=True, capture_output=True, text=True)  # 调用外部命令并获取结果

output = result.stdout  # 获取命令的输出结果

print(output)  # 输出命令执行结果

在上述代码中,我们通过设置shell=True来执行传入的命令。capture_output=True参数用于捕获命令的输出结果。text=True参数指示命令的输出结果为文本格式。最后,我们通过result.stdout属性获取命令的输出结果,并打印出来。