Python3 执行 Shell 命令

在Python中,我们可以很方便地执行Shell命令。这使得我们可以通过Python脚本来自动化执行系统命令,进行批量处理、数据分析等操作。本文将介绍如何使用Python3执行Shell命令,并提供一些常用的示例代码。

使用os.system()函数执行Shell命令

Python的标准库中提供了os.system()函数,可以用于执行Shell命令。该函数接受一个字符串参数,表示要执行的Shell命令,返回命令的执行结果。

下面是一个简单的示例,使用os.system()函数执行一个ls命令,列出当前目录下的文件和文件夹:

import os

os.system('ls')

上述代码执行后,会在终端输出当前目录下的文件和文件夹的列表。

我们也可以将命令的执行结果保存到一个变量中,以便后续处理。例如,我们可以将ls命令的执行结果保存到一个字符串中:

import os

result = os.popen('ls').read()
print(result)

上述代码执行后,会将当前目录下的文件和文件夹的列表打印出来。

使用subprocess模块执行Shell命令

除了os.system()函数外,Python的subprocess模块还提供了更强大和灵活的功能来执行Shell命令。subprocess模块可以创建新的进程来执行命令,并与其进行交互。

下面是一个使用subprocess模块执行Shell命令的示例:

import subprocess

result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

上述代码使用subprocess.run()函数执行ls -l命令,并将命令的输出结果保存到result变量中。capture_output=True参数表示将命令的输出结果捕获到result变量中,text=True参数表示将命令的输出结果以文本形式(字符串)返回。

我们还可以使用subprocess模块执行包含管道、重定向等特殊操作的Shell命令。例如,下面的代码使用subprocess模块执行一个包含管道的命令,将ls命令的输出结果通过管道传递给grep命令进行过滤:

import subprocess

result = subprocess.run('ls -l | grep .py', capture_output=True, shell=True, text=True)
print(result.stdout)

上述代码执行后,会将当前目录下的所有以.py结尾的文件打印出来。

使用sh库执行Shell命令

除了标准库中的ossubprocess模块外,还有第三方库sh可以用于执行Shell命令。sh库提供了一种更简洁和易用的方式来执行Shell命令。

要使用sh库,首先需要使用pip命令安装该库:

pip install sh

下面是一个使用sh库执行Shell命令的示例:

import sh

result = sh.ls('-l')
print(result)

上述代码执行了一个ls -l命令,并将命令的输出结果打印出来。

sh库还提供了方便的方法来执行更复杂的Shell命令,如管道、重定向等。例如,下面的代码使用sh库执行一个包含管道的命令,将ls命令的输出结果通过管道传递给grep命令进行过滤:

import sh

result = sh.ls('-l') | sh.grep('.py')
print(result)

上述代码执行后,会将当前目录下的所有以.py结尾的文件打印出来。

总结

本文介绍了在Python3中执行Shell命令的方法和示例代码。我们可以使用os.system()函数、subprocess模块或sh库来执行Shell命令,根据具体的需求选择合适的方法。

执行Shell命令可以方便地进行批量处理、数据分析等操作,帮助我们提高工作效率。但