Python调用shell命令常用方法(4种)

Python调用shell命令常用方法(4种)

1. 使用os模块的os.system()

最常见的调用shell命令方法是使用os模块的os.system()函数。这个方法会直接调用操作系统的命令行解释器来执行给定的命令。

使用os.system()函数时,需要传入一个字符串表示的命令,该命令将被操作系统执行。例如,我们可以使用os.system()来执行一个简单的ls命令:

import os

os.system('ls')

注意:os.system()执行完命令后不会返回任何结果。如果命令执行成功,会返回0,否则返回非零值。

2. 使用subprocess模块的subprocess.call()

subprocess模块是Python的一个强大的模块,它允许我们创建新的进程并与之交互。调用shell命令的一种常用方法是使用subprocess模块的subprocess.call()函数。

subprocess.call()函数可以接受一个字符串表示的命令,和os.system()类似。但是它的返回值是命令的返回代码,而不是直接打印出命令的输出。

以下是一个使用subprocess.call()函数的例子:

import subprocess

return_code = subprocess.call('ls')

print("Command return code:", return_code)

这个例子中,return_code将会保存ls命令的返回代码。如果返回代码是0,表示命令执行成功。

3. 使用subprocess模块的subprocess.check_output()

subprocess模块的subprocess.check_output()函数用于执行shell命令,并返回命令的输出结果。这个函数接受一个字符串表示的命令,返回一个字节字符串表示的命令输出。

以下是一个使用subprocess.check_output()函数的例子:

import subprocess

output = subprocess.check_output('ls')

print("Command output:", output)

这个例子中,output将会保存ls命令的输出结果。

4. 使用subprocess模块的subprocess.Popen()

subprocess模块的subprocess.Popen()函数是一个更灵活的方法,允许我们以更多的方式与子进程进行交互。使用subprocess.Popen()函数时,需要传入一个命令列表,而不是一个字符串。

以下是一个使用subprocess.Popen()函数的例子:

import subprocess

process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)

output, error = process.communicate()

print("Command output:", output)

在这个例子中,我们传入了一个列表,列表的第一个元素是命令,后面的元素是命令的参数。我们还使用了stdout=subprocess.PIPE来指定将命令的输出保存到一个变量中。

以上就是Python调用shell命令的四种常用方法。根据具体的需求,我们可以选择适合的方法来调用shell命令,并获取命令的输出结果。

后端开发标签