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

Python中如何使用commands模块执行系统命令并捕获输出

发布时间:2024-01-16 17:58:06

在Python中,可以使用commands模块来执行系统命令并捕获其输出。不过需要注意的是,commands模块在Python 2中是可用的,但在Python 3中被移除了。在Python 3中,可以使用subprocess模块来实现相同的功能。下面是使用commands模块执行系统命令并捕获输出的例子:

import commands

# 执行系统命令并获取输出
output = commands.getoutput('ls')

# 打印输出
print(output)

在上面的例子中,我们使用getoutput函数执行了ls命令,并将其输出结果赋值给output变量。然后,我们打印了这个输出。

在Python 3中,可以使用subprocess模块来实现相同的功能。下面是使用subprocess模块的例子:

import subprocess

# 执行系统命令并获取输出
output = subprocess.check_output('ls', shell=True).decode('utf-8')

# 打印输出
print(output)

在上面的例子中,我们使用check_output函数执行了ls命令,并将其输出结果赋值给output变量。然后,我们将output进行解码,并打印了这个输出。

需要注意的是,在subprocess模块中,check_output函数默认返回的是字节流,所以我们需要将其解码成字符串,这个例子中使用了UTF-8编码进行解码。

除了getoutput函数和check_output函数,还可以使用其他的函数来执行系统命令并捕获输出,比如getstatusoutput函数和call函数等。

下面是使用getstatusoutput函数的例子:

import commands

# 执行系统命令并获取返回状态码和输出
status, output = commands.getstatusoutput('ls')

# 打印返回状态码和输出
print('Status:', status)
print('Output:', output)

在上面的例子中,我们使用getstatusoutput函数执行了ls命令,并获取了它的返回状态码和输出结果。然后,我们打印了这两个值。

下面是使用call函数的例子:

import subprocess

# 执行系统命令
status = subprocess.call('ls', shell=True)

# 打印返回状态码
print('Status:', status)

在上面的例子中,我们使用call函数执行了ls命令,并获取了它的返回状态码。然后,我们打印了这个状态码。

总的来说,使用commands模块或subprocess模块可以方便地执行系统命令并捕获输出,我们可以根据自己的需求选择合适的方法。