1
我的目標是運行一個文件,返回其狀態(如果成功則返回0)並返回其輸出。我正在使用os模塊來獲得運行模擬的狀態。運行批處理文件的返回
status= os.system("file")
而我正在使用subprocess模塊有輸出。
output=subprocess.check_output("file")
我的問題:是否有任何功能,使我有兩個狀態和輸出沒有運行我的文件兩次?
我的目標是運行一個文件,返回其狀態(如果成功則返回0)並返回其輸出。我正在使用os模塊來獲得運行模擬的狀態。運行批處理文件的返回
status= os.system("file")
而我正在使用subprocess模塊有輸出。
output=subprocess.check_output("file")
我的問題:是否有任何功能,使我有兩個狀態和輸出沒有運行我的文件兩次?
check_output
已經做好了你需要的一切。從該文檔:
subprocess.check_output(參數,*,標準輸入=無,標準錯誤=無,殼=假, universal_newlines =假)運行命令參數和返回其 輸出作爲字節串。
如果返回碼非零,則會引發CalledProcessError。該 CalledProcessError對象將在返回碼 屬性返回代碼和輸出任何輸出屬性
所以,如果一切正常,它只是返回的輸出。否則,會出現一個異常,其中包含確切的返回碼以及直到被調用進程錯誤的部分輸出。
對於windows,你可以通過檢查'%errorlevel%'系統變量'os.system()' –
'subprocess.Popen'來檢查你的狀態。 ('wait()'用於返回狀態,'stdout'用於輸出。這裏有很多例子。 –