python如何运行shell命令subprocess
更新时间:2023-10-15前言
使用Python运行shell命令是一种常见的需求,可以通过Python的subprocess模块轻松实现。本文将介绍如何使用subprocess模块执行shell命令,并提供一些示例代码和解释。
使用subprocess运行shell命令
subprocess模块为我们提供了多种方式来运行shell命令,让我们逐一介绍:
方法一:使用subprocess.run()
subprocess.run()是Python 3.5引入的函数,它以简洁的方式运行shell命令。
import subprocess # 运行shell命令 subprocess.run(["ls", "-l"])
在上述代码中,我们运行了一个简单的shell命令"ls -l"。subprocess.run()接受一个列表作为参数,列表的第一个元素是要执行的命令,后面的元素是命令的参数。例如,上述代码中的"ls"是命令,"-l"是参数。
subprocess.run()的返回值是一个CompletedProcess对象,包含了命令的执行结果和其他信息。你可以通过检查CompletedProcess对象的属性来获取这些信息。
方法二:使用subprocess.call()
如果你使用的是Python 3.4以及更早的版本,你可以使用subprocess.call()函数来执行shell命令。
import subprocess # 运行shell命令 subprocess.call(["ls", "-l"])
subprocess.call()的使用方式与subprocess.run()类似,只是它返回的是命令的退出代码而不是CompletedProcess对象。
方法三:使用subprocess.Popen()
subprocess.Popen()是最灵活的方法,它能够更好地控制命令的输入、输出和错误处理。
import subprocess # 运行shell命令 process = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 获取命令的输出和错误 output, error = process.communicate() # 打印输出和错误 print(output) print(error)
在上述代码中,我们使用subprocess.PIPE参数将命令的输出和错误重定向到Python中的变量。然后,我们通过调用process.communicate()方法来执行命令,并获取输出和错误。最后,我们打印出输出和错误信息。
总结
通过subprocess模块,我们可以方便地在Python中运行shell命令。我们介绍了三种常用的方法:subprocess.run()、subprocess.call()和subprocess.Popen()。这些方法能够满足不同的需求,你可以根据自己的情况选择适合的方法来执行shell命令。