在本教程中,我们将学习 Python 系统命令。之前我们学习了Python 随机数。

Python系统命令

在 python 中编写程序时,您可能需要为您的程序执行一些 shell 命令。例如,如果您使用PycharmIDE,您可能会注意到在 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 系统命令

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 系统命令。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐