使用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属性获取命令的输出结果,并打印出来。
