Python 執行另一個 Python 指令碼
-
使用
import
語句在另一個 Python 指令碼中執行 Python 指令碼 -
使用
execfile()
方法在另一個 Python 指令碼中執行 Python 指令碼 -
使用
subprocess
模組在另一個 Python 指令碼中執行 Python 指令碼
包含旨在由客戶端直接執行的 Python 程式碼的基本文字檔案通常稱為指令碼,正式稱為頂級程式檔案。
指令碼旨在直接在 python 中執行。學習執行指令碼和程式碼是在 Python 程式設計世界中學習的一項基本技能。Python 指令碼通常具有副檔名 '.py'
。如果指令碼在 Windows 機器上執行,它可能有一個副檔名,.pyw
。
本教程將討論在另一個 Python 指令碼中執行 Python 指令碼的不同方法。
使用 import
語句在另一個 Python 指令碼中執行 Python 指令碼
import
語句用於將多個模組匯入 Python 程式碼。它用於從模組訪問特定程式碼。此方法使用 import
語句將指令碼匯入 Python 程式碼並將其用作模組。模組可以定義為包含 Python 定義和語句的檔案。
以下程式碼使用 import
語句在另一個 Python 指令碼中執行 Python 指令碼。
Script1.py
:
def func1():
print("Function 1 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func1()
輸出:
Function 1 is active
Script2.py
:
import Script1.py
def func2():
print("Function 2 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func2()
Script1.func1()
輸出:
Function 2 is active
Function 1 is active
使用 execfile()
方法在另一個 Python 指令碼中執行 Python 指令碼
execfile()
函式在直譯器中執行所需的檔案。此函式僅適用於 Python 2。在 Python 3 中,execfile()
函式已被刪除,但在 Python 3 中使用 exec()
方法可以實現相同的功能。
以下程式碼使用 execfile()
函式在另一個 Python 指令碼中執行 Python 指令碼。
Script2.py
:
# Python 2 code
execfile("Script1.py")
輸出:
Function 1 is active
同樣的事情可以在 Python 3 中使用:
Script2.py
:
exec(open("Script1.py").read())
輸出:
Function 1 is active
使用 subprocess
模組在另一個 Python 指令碼中執行 Python 指令碼
subprocess
模組能夠產生新的程序,也可以返回它們的輸出。這是一個新模組,旨在替換多箇舊模組,例如 os.system
,後者以前用於在另一個 Python 指令碼中執行 Python 指令碼。
以下程式碼使用 subprocess
模組在另一個 Python 指令碼中執行 Python 指令碼。
Script1.py
:
def func1():
print("Function 1 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func1()
Script2.py
:
import subprocess
subprocess.call("Script1.py", shell=True)
輸出:
Function 1 is active
儘管這三種方法都工作得很好,但與其他兩種方法相比,這種方法具有優勢。此方法不需要編輯現有的 Python 指令碼並將其包含的所有程式碼放入子例程中。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn