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)](