我想弄清楚如何使用F2PY爲其生成Python接口的某些FORTRAN代碼重定向輸出。我已經試過:在Python中重定向FORTRAN(通過F2PY調用)輸出
from fortran_code import fortran_function
stdout_holder = sys.stdout
stderr_holder = sys.stderr
sys.stdout = file("/dev/null","w")
fortran_function()
sys.stdout.close()
sys.stderr.close()
sys.stdout = stdout_holder
sys.stderr = stderr_holder
這是在Python重定向輸出的實際方法,但它似乎並不在此情況下(即,無論如何顯示輸出)工作。
我確實發現a mailing list post from 2002表示「有可能從pts設備讀取消息,例如ttysnoop會這樣做」。有關ttysnoop的信息似乎很難在網上找到(我認爲它不會在幾年內更新;例如,the first result on Google for "ttysnoop"與tarballs,RPM和.deb只有死鏈接),並且this request for a port to OS X收到響應「沒有運氣,它需要一些我無法創建的特定於linux的utmp功能。「
我接受任何關於如何重定向輸出的建議(它不必使用ttysnoop)。
謝謝!
你確定FORTRAN輸出不會標準錯誤而不是標準輸出? – 2009-06-10 20:36:30
是的,我只是嘗試重定向它,並得到了相同的結果。 – srunni 2009-06-10 20:55:04