2016-08-02 100 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:]) 
相关问题