Python 系统命令 - os.system(), subprocess.call()
在本教程中,我们将学习 Python 系统命令。之前我们学习了Python 随机数。 Python系统命令 在 python 中编写程序时,您可能需要为您的程序执行一些 shell 命令。例如,如果您使用PycharmIDE,您可能会注意到在 github 上共享您的项目的选项。而且你可能知道文件传输是由git完成的,它是使用命令行操作的。因此,Pycharm 在后台执行一些 shell 命令来执
在本教程中,我们将学习 Python 系统命令。之前我们学习了Python 随机数。
Python系统命令
在 python 中编写程序时,您可能需要为您的程序执行一些 shell 命令。例如,如果您使用Pycharm
IDE,您可能会注意到在 github 上共享您的项目的选项。而且你可能知道文件传输是由git完成的,它是使用命令行操作的。因此,Pycharm 在后台执行一些 shell 命令来执行此操作。但是,在本教程中,我们将学习一些有关从 Python 代码执行 shell 命令的基础知识。
Python os.system() 函数
我们可以使用os.system()函数来执行系统命令。根据官方文件,据说
这是通过调用标准 C 函数 system() 来实现的,并且具有相同的限制。
但是,如果命令生成任何输出,则将其发送到解释器标准输出流。不推荐使用此命令。在下面的代码中,我们将尝试使用系统命令git --version
了解 git 的版本。
import os
cmd = "git --version"
returned_value = os.system(cmd) # returns the exit code in unix
print('returned value:', returned_value)
在已安装 git 的 ubuntu 16.04 中找到以下输出。
git version 2.14.2
returned value: 0
请注意,我们没有将 git version 命令输出打印到控制台,它正在打印,因为控制台是这里的标准输出流。
Python subprocess.call() 函数
在上一节中,我们看到os.system()
函数运行良好。但不推荐执行 shell 命令的方式。我们将使用 Python子进程模块来执行系统命令。我们可以使用subprocess.call()
函数运行 shell 命令。请参阅下面的代码,它与前面的代码等效。
import subprocess
cmd = "git --version"
returned_value = subprocess.call(cmd, shell=True) # returns the exit code in unix
print('returned value:', returned_value)
并且输出也将相同。
Python subprocess.check_output() 函数
到目前为止,我们在 python 的帮助下执行了系统命令。但是我们无法操纵这些命令产生的输出。使用subprocess.check_output()
函数,我们可以将输出存储在一个变量中。
import subprocess
cmd = "date"
# returns output as byte string
returned_output = subprocess.check_output(cmd)
# using decode() function to convert byte string to string
print('Current date is:', returned_output.decode("utf-8"))
它将产生如下输出
Current date is: Thu Oct 5 16:31:41 IST 2017
因此,在上面的部分中,我们讨论了有关执行 python 系统命令的基本思想。但是学习没有限制。如果您愿意,您可以从官方文档中了解更多关于使用子进程模块的 Python 系统命令。
更多推荐
所有评论(0)