监视新追加的行并创建一个;每行

时间:2016-08-02 07:39:25

标签: python python-2.7 pandas

我在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列。此外,这些新文件的位置也应该是可配置的。有人建议有效的方法吗? “实时”监控和文件分割。

1 个答案:

答案 0 :(得分: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:])