2014-09-02 135 views
0

任何人都可以告訴我如何獲得相同的程序控制臺輸出爲變量Python獲取控制檯輸出

例如:

print "this is simple output" 
print "and this is another simple output" 

ConsOutputs = some_function_to_get_those_strings_from_console() 
+0

你爲什麼要這麼做?有幾條路線(例如使用日誌記錄,滾動你自己的'print'函數,修改'stdout'),但哪個最好取決於你的目標。 – jonrsharpe 2014-09-02 12:42:59

+2

請不要再問[同樣的問題](http://stackoverflow.com/questions/25621134/python-pss-e-get-output-as-variable)。 – 2014-09-02 12:46:06

回答

0

您可以重定向標準輸出到自己的自定義輸出對象。你在這裏得到很多控制,默認情況下這將停止打印到標準輸出。

import sys 

class Logger(): 
    stdout = sys.stdout 
    messages = [] 

    def start(self): 
     sys.stdout = self 

    def stop(self): 
     sys.stdout = self.stdout 

    def write(self, text): 
     self.messages.append(text) 

log = Logger() 

log.start() 
print "sys" 
log.stop() 

print log.messages 

如果你想記錄的消息,並在同一時間將其打印到標準輸出,你將不得不一些邏輯添加到記錄器對象的write方法。

+0

非常感謝,它像一個魅力。再次感謝你 :) – 2014-09-02 13:03:55