监视新的附加行并创建一个 ;每行的分隔文件
Posted
技术标签:
【中文标题】监视新的附加行并创建一个 ;每行的分隔文件【英文标题】:Monitor new appended rows and create a ; separated file for each row 【发布时间】:2016-12-07 10:56:45 【问题描述】:我在 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 列。这些新文件的位置也应该是可配置的。任何人都建议一种有效的方法来做到这一点? “实时”监控和文件拆分。
【问题讨论】:
如果有,请附上您尝试过的代码。请阅读*** help,了解如何写出更好的问题。 如果您甚至不知道从哪里开始解决这个问题,那么至少向我们展示您所做的研究,并准确指出您不了解哪些概念或技术。跨度> 【参考方案1】:我建议查看 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:])
【讨论】:
以上是关于监视新的附加行并创建一个 ;每行的分隔文件的主要内容,如果未能解决你的问题,请参考以下文章