2016-08-02 27 views
-4

我在linux服務器上有一個csv文件,它隨機添加了新行(可以是1秒,可以是2小時,沒有新行)。該文件看起來如下:監控新添加的行並創建一個;每行有獨立文件

KEY PREDICTION FIRST NAME LAST NAME 
aaaaaa 0   john doe 
bbbbbb 1   jane doe 
cccccc 1   michael michael 
dddddd 0   roger rabit 

可以說,這些都是被附加到文件4個新行 - 一旦行的變化發生了,我需要採取新的N行和創建n個冒號分隔的文件中, KEY是文件的名稱,內容全部是4列。這些新文件的位置也應該是可配置的。任何人都建議一個有效的方法來做到這一點「實時」監控和文件分割。

+2

請包括您嘗試的代碼,如果有的話。並且請閱讀[Stackoverflow幫助](http://stackoverflow.com/help/mcve)瞭解如何編寫更好的問題。 – Sevanteri

+1

如果你甚至不知道從哪裏開始解決這個問題,那麼至少要告訴我們你做了什麼研究,並且確切地指出你不瞭解哪些概念或技術。 – skrrgwasme

回答

0

我會建議看看David's generator tricks from python。一個能夠實現您的目標的示例程序將如下所示:

import time 
import csv 
def follow(thefile): 
    thefile.seek(0,2) 
    while True: 
     line = thefile.readline() 
     if not line: 
      time.sleep(0.1) 
      continue 
     yield line 

if __name__ == '__main__': 
    logfile = open("run/foo/access-log","r") 
    loglines = follow(logfile) 
    for line in loglines: 
     z = line.split(",") # if it is comma separated, change delimiter if required 
     with open("/path/to/csv/"+z[0]+".csv",'wb') as f: 
      wr = csv.writer(f,delimiter = ";") 
      wr.writerow(z[1:]) 
相關問題