监视新的附加行并创建一个 ;每行的分隔文件

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:])

【讨论】:

以上是关于监视新的附加行并创建一个 ;每行的分隔文件的主要内容,如果未能解决你的问题,请参考以下文章

swift 创建一个新的viewController文件并使用storyboard附加swift文件

将一列附加到多个 csv 文件中,每行包含一个常量

将 mako 渲染模板写入文件时创建的附加回车

读取 df,拆分每个单元格并附加到列表

WinForm C#如何将方法附加到以编程方式创建的控件

使用 pyspark 在循环中附加 Spark DataFrames 的有效方法