Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以在实时文件上使用计数器吗?_Python - Fatal编程技术网

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

Python 我可以在实时文件上使用计数器吗?,python,Python,使用一个关闭的文件“loggedData.dat”,下面的代码可以正常工作。如果一个数字重复5次以上,它将显示在列表的打印输出中。但我希望“loggedData.dat”是一个实时文件,一个不断添加到其中的文件。我该怎么做?在脚本运行后,我尝试添加到“loggedData.dat”中,但没有得到响应。我在Windows7计算机上使用这个python-2.7脚本,它将“loggedData.dat”放入记事本 import numpy as np from collections import C

使用一个关闭的文件“loggedData.dat”,下面的代码可以正常工作。如果一个数字重复5次以上,它将显示在列表的打印输出中。但我希望“loggedData.dat”是一个实时文件,一个不断添加到其中的文件。我该怎么做?在脚本运行后,我尝试添加到“loggedData.dat”中,但没有得到响应。我在Windows7计算机上使用这个python-2.7脚本,它将“loggedData.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

您的核心问题是,当您正在观看的实时文件发生更改时,您会收到通知,而无需不断进行轮询

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

一旦通知您所关心的文件发生更改,您需要执行的操作取决于您的应用程序约束

如果更改是任意的,例如删除或编辑现有行,则您几乎必须在新版本中重新读取整个文件

在另一个极端情况下,如果约束非常强,例如,只有附加的行,一旦到达那里就永远不会修改,那么您可能能够优化仅与大文件相关的行,尽管如果您使用像np.loadtxt这样的高抽象级别的工具,则可能无法进行优化


但我不会对此进行扩展,因为这是一种过早的优化,不知道您所说的所有需要的令人痛苦的细节级别的活动文件是什么意思:-.

np.loadtxtfilename在循环开始之前将整个文件读取到内存中。当你想在文件被追加时读取文件时,你需要逐行阅读,并在计数器中显示的行中添加这些行。你问的问题有点错了——相关的是文件处理,而不是计数器的使用。此外,如果您只使用NoMPy作为Load Txt,请考虑使用内置CSV模块来代替丹,我想我理解。我还将尝试csv。我只是用cnt+记录温度读数。0 77, 1 78, 2 77, 3 77, 4 77, 5 77, 6 77, 7 76, 8 75. 随着更多温度的记录,只有文件的结尾会更改。上面77的温度重复了5次以上,我感兴趣的只是重复了5次以上的温度。对不起,Alex,你对我来说太快了。因此,在这种情况下,如果你愿意使用较低的抽象级别,一些优化可能是可能的。但是:首先让它工作-安装并使用watchdog,每次修改时都重新读取整个文件。在基本功能正常工作之前,不要麻烦优化