2011-07-22 215 views
0

在交互式解釋器中調用os.system()時,可以看到它在控制檯中的輸出。 但在我的情況下,我需要將sys.stderr和sys.stdout更改爲另一個類的實例,並在exec語句中調用os.system函數。問題是,我沒有看到它的輸出。它不會寫入stderr或stdout。 所以我的問題:os.system()的打印輸出去哪裏?os.system()的控制檯輸出?

謝謝, 尼古拉斯

回答

3

它朝向任一文件描述符1或2,這取決於是否將其輸出到stdout或stderr。如果你需要更好地控制輸出,那麼你應該使用subprocess

+0

但它沒有去標準輸出或標準錯誤,我沒有看到它在我的輸出窗口。但是子進程模塊似乎對此非常有用!謝謝 ! –

+0

但我看到,我的自定義filelike類不支持fileno()方法。有沒有辦法解決它? –

+0

使用'os.pipe()'創建一個管道,並使用'select'來查看是否有數據要從中讀取。 –