在 Python 中调用外部程序

Manav Narula 2023年1月30日
  1. 在 Python 中使用 os.system() 函数执行外部系统命令
  2. 在 Python 中使用 os.popen() 函数执行外部系统命令
  3. 在 Python 中使用 subprocess.Popen() 函数执行外部系统命令
  4. 在 Python 中使用 subprocess.call() 函数执行外部系统命令
  5. 在 Python 中使用 subprocess.run() 函数执行外部系统命令
在 Python 中调用外部程序

在 Python 中,我们有不同的模块和函数可用于与操作系统进行通信并获取响应。Python 还具有可以执行外部程序的方法。

在本教程中,我们将讨论如何在 Python 中调用外部程序。

在 Python 中使用 os.system() 函数执行外部系统命令

Python 中的 os 模块可以与设备的 OS 交互,并且具有可用于执行 Shell 命令的函数。system() 函数在子 Shell 中实现一个命令,该命令以字符串形式传递给它。它返回 Shell 程序的退出状态,操作系统在运行给定命令后返回该退出状态。它允许一次运行多个命令并调用外部程序,而不是 shell 命令。

例如,

import os

os.system("echo Hello World")

在 Python 中使用 os.popen() 函数执行外部系统命令

os 模块中用于运行外部程序命令的另一个函数是 popen() 函数。此方法打开与命令相关的管道。它类似于 os.system() 函数,但是它提供了一个文件类型的对象,可以帮助执行与命令相关的输入输出操作。我们可以指定文件的文件模式和 buff-size 作为函数中的参数。

例如,

import os

os.popen("echo Hello World")

请注意,Python 2 提供了 4 种类型的 popen() 函数。它们之间的区别在于这 4 个函数的输出。

在 Python 中使用 subprocess.Popen() 函数执行外部系统命令

subprocess 模块类似于 os 模块,并具有改进的用于调用外部程序的功能和方法。Popen 是类而不是方法。由于需要与所需命令一起指定各种参数,因此使用它有点复杂。它将所有 4 个 os.popen() 函数合并为一个。它还将外部程序作为单独的进程执行。以下代码显示了如何使用它。

import subprocess

subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read()

在 Python 中使用 subprocess.call() 函数执行外部系统命令

call() 函数是对 popen() 函数的改进。但是,与 popen() 函数不同,它在提供返回代码之前等待命令执行。我们将命令作为参数传递给函数。

例如,

import subprocess

subprocess.call("echo Hello World", shell=True)

在 Python 中使用 subprocess.run() 函数执行外部系统命令

在 Python v3.5 及更高版本中,run() 函数通常用于运行程序命令。运行命令后,它返回一个完成过程的对象,并作为参数传递给函数。

例如,

import subprocess

print(subprocess.run("echo Hello World", shell=True))

请注意,在 Python 中运行外部命令时,相对于 os 模块,首选 subprocess 模块。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Process