[英]Running python script from within python script
我是Python(C ++流利)的新手,正在根據需要學習。 我編寫了一個腳本,該腳本帶有幾個參數,並創建並保存一個matplotlib圖。 它沒有函數,方法,類等。它只是一系列產生圖形的指令。 我想編寫另一個腳本,該腳本將使用其參數盡可能簡單地執行該腳本。
這在Python中可行嗎?
看一下stdlib的子過程模塊: http : //docs.python.org/2/library/subprocess.html
from subprocess import call
call([sys.executable, 'script.py', arg1, arg2])
有關選項的完整列表,請查看以下類似問題: 在Python中調用外部命令
閱讀上面我提供的鏈接上的文檔 ,特別是在您需要此調用以確保安全的情況下(請確保您信任或驗證這些參數)。
更新 :
另一種選擇(也是更好的選擇)是僅通過導入來運行此代碼。
如果您將其清理並放入函數中,然后從主程序導入並調用它,則無需將該模塊作為腳本執行,並且,如果需要,您仍然可以輕松地將其作為獨立腳本運行:
# script.py
def func(param1, param2, param3)
#...
if __name__=="__main__":
# get params...
func(param1, param2, param3)
# handle output etc...
# main.py
# ...
from script import func
# ...
func(param1, param2, param3)
# ...
您可以使用子流程模塊。
import subprocess
subprocess.Popen([sys.executable, "save_graph.py", parameter1, parameter2])
執行后,此代碼段將等待“ save_graph.py”完全完成執行,然后再繼續。
如果要生成與父進程分離的子進程,則必須執行以下操作:
DETACHED_PROCESS = 0x00000008
subprocess.Popen([sys.executable, "smtp_email.py", email, vcode], creationflags = DETACHED_PROCESS).pid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.