2010-12-20 70 views
1

從一個python腳本(「main.py」)中,我使用subprocess模塊​​來運行另一個腳本(「sub_script.py」)。使用子流程將腳本輸出定向到文件?

這裏是在「main.py」腳本代碼「運行」「sub_script.py」:

subprocess.Popen([sys.executable, "sub_script.py"]) 

此,只要能正常工作的「sub_script.py」沒有任何「打印」在它的聲明。

我現在想將「sub_script.py」的所有輸出傳送到外部文件(「log.txt」)。

我該怎麼做?

+3

爲什麼不只是'import sub_script'?爲什麼所有這些額外的子流程業務? – 2010-12-20 19:26:52

+0

我正在使用Cron運行「main.py」 - 所以它對我使用子進程很有幫助。 – user3262424 2010-12-20 19:40:46

+0

'import'並啓動一個子進程做了根本不同的事情。對於初學者來說,如果腳本使用'if __name__ =「__main __」:'block,那麼你將無法在導入輸出的時候運行(這裏是必需的),而且你的主腳本需要等待爲下標完成。另外,在一般情況下,您不能真正導入腳本(因爲您不能保證它是python路徑中的.py文件)。 – 2010-12-20 19:43:17

回答

2
subprocess.Popen([sys.executable, "sub_script.py"], stdout=open("log.txt", "a")) 
相關問題