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