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命令,并获取命令的输出结果。