2012-11-30 31 views
3

我正在編寫一個腳本,它用HTTP流量線解析一個文件,並取出域並將它們打印到屏幕上。我正在使用httpry將流量連續寫入文件。下面是我使用去掉域名用Python連續解析文件

#!/usr/bin/python 

import re 

input = open("results.txt","r") 

for line in input: 
    domain = line.split()[6] 
    if domain != "-": 
     print domain 

雖然這個腳本的偉大工程的劇本,我想一個辦法,使新的業務被添加到輸入文件連續運行此腳本,該腳本能夠將其去掉。我不能在httpry的輸出上運行awk,因爲我最終會將這些域輸入到Mongo數據庫中,而且我還需要該腳本來完成此操作。如果有人可以給我一些想法如何不斷地在輸出中運行這個python腳本,但不重印以前的條目,這將是非常感激。謝謝。

回答

0

的Node.js有一個很好的readline模塊,應該很好地處理這個問題:

var readline = require('readline') 
    , fs = require('fs') 

var input = process.stdin; // or: fs.createReadStream('input.txt'); 
var output = process.stdout; // or: fs.createWriteStream('output.txt') 

var reader = readline.createInterface({ 
    input: input, 
    output: output 
}); 

reader.on('line', function(line) { 
    this.write(line.split(/[ ]+/)[6]); 
}); 

保存在一個.js文件和做node domains.js ,或者任何你命名它的東西。或者cat file | node domains.js

它應該在未來與mongodb很好地結合:)