2013-11-26 86 views
0

我有一個python應用程序,在屏幕上有很多輸出可用於調試。在所有日誌記錄技術中,「腳本」命令對我來說效果很好,因爲我可以在屏幕上看到輸出並記錄它。我想在我的python應用程序的開始部分包含它以自動運行並記錄所有內容,但是,當我這樣做時,python程序無法運行。只要我在終端鍵入退出(它停止腳本記錄),應用程序開始工作。我正在使用的命令是:「腳本命令」和登錄python

command="script /tmp/appdebug/debug.txt" 
os.system(command) 

我也試過腳本-q,但同樣的問題在那裏。將不勝感激任何幫助。

乾杯

回答

0

嘗試使用subprocess,像這樣:

from subprocess import Popen, PIPE 

p = Popen(['script', '/tmp/appdebug/debug.txt'], stderr=PIPE, stdout=PIPE) 
stdout, stderr = p.communicate() 
0

script是相互作用的會話包裝。即使它在shell中啓動後似乎很快終止,但事實並非如此;而是啓動一個新的shell ,其中可以進行交互,以便將所有內容都記錄到文件中。

這對你意味着什麼?

您的使用script的方法無法正常工作。使用os.system開始script,在執行下一條Python語句之前,它將等待script終止。 script的工作只會在它終止之前發生(即在Python程序的無趣等待期間)。我建議改用script -c yourprog.py yourprog.log。這將執行幷包裝yourprog.py,會話將存儲在yourprog.log中。