我可以在实时文件上使用计数器吗?

2024-04-25 22:08:17 发布

您现在位置:Python中文网/ 问答频道 /正文

使用一个关闭的文件,下面的方法可以很好地工作日志数据.dat'. 如果一个数字重复5次以上,它就会显示在列表的打印输出中。但我想要'日志数据.dat“成为一个实时文件,一个不断被添加到的文件。我该怎么做?我试着加上日志数据.dat“在脚本运行但没有得到响应之后。我在Windows7计算机上使用这个python-2.7脚本日志数据.dat'进入记事本。你知道吗

import numpy as np
from collections import Counter
list_of_files=[('loggedData.dat', 'Nothing')]
datalist = [(np.loadtxt(filename), label) for filename, label list_of_files]
while True:
    for data, label in datalist:
        List = [k for (k, v) in Counter(data[:,1]).iteritems() if v>5]
        print List

Tags: 文件of数据import脚本fordatanp
1条回答
网友
1楼 · 发布于 2024-04-25 22:08:17

您的核心问题是,当您正在监视的“实时文件”发生更改时,会收到通知,而无需不停地轮询。你知道吗

一个很好的跨平台库是watchdog,它确实需要您安装一堆其他的东西,但这是值得的。你知道吗

一旦通知您所关心的文件发生更改,您需要做什么取决于您的应用程序约束。你知道吗

如果更改是任意的(例如删除或编辑现有行),那么您几乎必须在新版本中重新读取整个文件。你知道吗

另一个极端是,如果约束非常强(例如,行只被追加,一旦到了就永远不会修改),那么您可能能够优化它(只与非常大的文件相关),但如果您使用像np.loadtxt这样的高抽象级别工具,则可能无法优化它。你知道吗

但我不会就此展开,因为这将是过早的优化,不知道您所说的“实时文件”是什么意思,在所有需要的痛苦级别细节:-). 你知道吗

相关问题 更多 >

    热门问题