我有一個python腳本作爲linux服務運行(也作爲autorun),並且它有很多輸出! 如何在程序運行時讀取該輸出?從正在運行的python腳本讀取輸出的Linux python
也許我可以將所有輸出記錄到一個文件中,但是當記錄新輸出時,我將不得不打開並刷新文件!
我有一個python腳本作爲linux服務運行(也作爲autorun),並且它有很多輸出! 如何在程序運行時讀取該輸出?從正在運行的python腳本讀取輸出的Linux python
也許我可以將所有輸出記錄到一個文件中,但是當記錄新輸出時,我將不得不打開並刷新文件!
也可以從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
那麼,當它涉及到的問題的第二項,在外殼裏,你可以這樣做:
tail -f logfile.log
當文件更新全自動刷新,因此Linux這是一個可行的解決方案下。
+1。還有['multitail'](http://www.vanheusden.com/multitail/)(通過通配符查看多個文件,單獨或合併,過濾和着色等),['glogg']( http://glogg.bonnefon.org)(在一個漂亮的GUI窗口中觀看文件)等等。當它已經存在時,沒有理由自己創建一些東西。 – abarnert 2013-04-05 00:48:28