2013-04-05 124 views
0

我有一個python腳本作爲linux服務運行(也作爲autorun),並且它有很多輸出! 如何在程序運行時讀取該輸出?從正在運行的python腳本讀取輸出的Linux python

也許我可以將所有輸出記錄到一個文件中,但是當記錄新輸出時,我將不得不打開並刷新文件!

回答

2

也可以從python一側實現尾巴,它基本上是連續讀取的。代碼段,使這項工作可以在這裏找到:

http://code.activestate.com/recipes/157035-tail-f-in-python/

此外,如果您使用的文件的追加方式寫的,而不是可以連續輸出的寫入方法。

Scrapy還使用管道的概念,它允許很多相同的功能。以下是您可能用於執行相同操作的一些scrapy代碼示例:

class JsonWriterPipeline(object): 
    def __init__(self): 
     self.file = (open(filepath, 'a')) 
    def process_item(self, item, spider): 
     self.file.write(json.dumps(dict(item)) + '\n') 
     return item 
3

那麼,當它涉及到的問題的第二項,在外殼裏,你可以這樣做:

tail -f logfile.log 

當文件更新全自動刷新,因此Linux這是一個可行的解決方案下。

+1

+1。還有['multitail'](http://www.vanheusden.com/multitail/)(通過通配符查看多個文件,單獨或合併,過濾和着色等),['glogg']( http://glogg.bonnefon.org)(在一個漂亮的GUI窗口中觀看文件)等等。當它已經存在時,沒有理由自己創建一些東西。 – abarnert 2013-04-05 00:48:28