我試圖使用subprocess.Popen從另一個python腳本執行python腳本。我的命令是:subprocess.Popen不會將異常存儲到錯誤文件中
outf = open('out.txt','w+')
errf = open('err.txt','w+')
p = subprocess.Popen([cmd],stdin=inf,stdout=outf,stderr=errf,shell=True)
所有需要的都是先前定義的。這對管道輸出到標準輸出文件沒有任何問題。但是,當python腳本中存在錯誤時,它會以錯誤退出。該錯誤既不存儲在stdout文件中,也不存儲在stderr文件中。我該怎麼做呢?
我通過使用p.returncode
得知該文件由於錯誤而退出。但是,如何獲得錯誤追溯?
請提供更多的上下文。你如何初始化'errf'? – Pavel
@Pavel:已添加。此初始化沒有問題,因爲如果執行沒有錯誤,輸出將存儲在out.txt中 –
您是否正確關閉文件?你應該打開這些文件,但不要關閉它們。 – Bakuriu