在 Python 中调用外部程序
-
在 Python 中使用
os.system()
函数执行外部系统命令 -
在 Python 中使用
os.popen()
函数执行外部系统命令 -
在 Python 中使用
subprocess.Popen()
函数执行外部系统命令 -
在 Python 中使用
subprocess.call()
函数执行外部系统命令 -
在 Python 中使用
subprocess.run()
函数执行外部系统命令
在 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 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