在 Python 中呼叫外部程式

Manav Narula 2023年1月30日 2021年3月21日
  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 模組。

Author: 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