在 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