Python 执行Shell命令并返回结果
在Python编程中,有时候需要执行一些Shell命令,并获取其执行结果。这在很多情况下都是非常有用的,比如运行外部程序、执行系统命令等等。Python提供了多种方法来执行Shell命令,并且获取其返回结果。本文将介绍如何在Python中执行Shell命令,并返回结果的几种常见方法。
方法一:使用os模块
Python的os模块提供了一些函数来与操作系统进行交互。其中,os.system()
函数可以用于执行Shell命令,并返回执行结果的返回码。返回码为0表示执行成功,非0表示执行失败。
import os
# 执行Shell命令
result = os.system('ls -l')
# 输出执行结果的返回码
print(result)
上述代码中,os.system()
函数执行了一个简单的Shell命令ls -l
,并将返回结果赋值给变量result
。最后,打印出了返回码。
方法二:使用subprocess模块
Python的subprocess模块提供了更强大的功能来执行Shell命令,并获取其返回结果。subprocess.run()
函数可以用于执行Shell命令,并返回完整的执行结果。
import subprocess
# 执行Shell命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
# 输出执行结果的返回码
print(result.returncode)
# 输出执行结果的标准输出
print(result.stdout)
上述代码中,subprocess.run()
函数执行了一个类似的Shell命令ls -l
,并将capture_output=True
设置为True,以便捕获命令的标准输出。text=True
参数用于将输出结果转换为字符串。
subprocess.run()
函数的返回值是一个CompletedProcess
对象,其中包含了执行结果的相关信息。returncode
属性表示执行结果的返回码,stdout
属性表示命令的标准输出。
方法三:使用commands模块(Python 2.x)
在Python 2.x版本中,可以使用commands模块来执行Shell命令,并获取其返回结果。commands.getoutput()
函数可以用于执行Shell命令,并返回输出结果。
import commands
# 执行Shell命令
result = commands.getoutput('ls -l')
# 输出执行结果
print(result)
注意,commands
模块在Python 3.x版本中已经被移除,不再可用。
总结
本文介绍了在Python中执行Shell命令,并获取其返回结果的几种常见方法。具体来说,可以使用os.system()
函数、subprocess.run()
函数以及commands.getoutput()
函数来执行Shell命令,并获取其返回结果。这些方法在不同的Python版本中可能会有所不同,因此请根据自己的实际情况选择合适的方法。
执行Shell命令并获取其返回结果在很多场景下都非常有用,比如运行外部程序、执行系统命令等等。掌握这些方法,可以让我们的Python程序更加灵活和强大。
参考链接
- [os — Miscellaneous operating system interfaces - Python docs](
- [subprocess — Subprocess management - Python docs](
- [commands — Deprecated command line parsing module - Python docs (Python 2.x)](