我正在使用os.popen(cmd)通過isql連接到數據庫。這是在Unix,Python版本2.3.4。我試圖實現錯誤處理,而且,我不知道是否有 捕捉由被稱爲子流程,如本次募集錯誤/異常的有效方式,無需處理標準錯誤等Python - 捕獲子進程異常
感謝,
丹
我正在使用os.popen(cmd)通過isql連接到數據庫。這是在Unix,Python版本2.3.4。我試圖實現錯誤處理,而且,我不知道是否有 捕捉由被稱爲子流程,如本次募集錯誤/異常的有效方式,無需處理標準錯誤等Python - 捕獲子進程異常
感謝,
丹
號所有你得到的是從popen
pclose
進程的退出代碼返回
如果您按以下方式使用子進程,你應該能夠做到像這樣
sql_stdout_stderr = subprocess.Popen(sql_command, stdout=subprocess.PIPE)
#communicate returns a tuple
stdout, stderr = sql_stdout_stderr.communicate()
這將使您返回stdout和錯誤。如果stderr包含任何內容,則執行錯誤處理,如果爲空則不做任何事
Goodluck!
編輯:我剛剛讀過你不想處理stderr,我真的認爲你應該使用子處理,它處理所有的東西整齊地爲你,希望這會讓事情變得更容易管理。
嗨謝謝,不幸的是我卡住了使用python 2.3,其中不包括子進程模塊。我可以使用os.popen3來獲得stderr,但是解析所有可能出現的各種錯誤消息對我而言並不太實際。 – Dan
這是'isql'程序是一個Python腳本,它的輸出可以控制嗎? –
沒有它在unix上的可執行程序 – Dan
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.utility/html/utility/utility210.htm – Dan