簡體   English   中英

從python腳本中運行python腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM