我有来自许多传感器的流数据,这些数据每秒更新到计算机上的.temp文件。我试图找到一种方法,以便在数据到达时顺序读取该数据并将其提供给应该对该流数据进行计算的函数。
有什么方法可以从.tmp文件中读取此类数据,并在数据到达时在同一实例上执行计算?
答案 0 :(得分:0)
也许这样可以帮助我创建两个python文件,一个读取器和一个写入器:
例如,我的作家将每秒用一个密钥age
向文本文件添加一个json字符串:
import random
import time
with open("test.txt", "a") as t:
while True:
time.sleep(1)
t.write('{"age": ' + str(random.randint(1, 100)) + '}\n')
t.flush()
阅读器现在将读取更改时最新写入的行,并计算此数据的median
。
import json
import statistics
agearray = []
with open("test.txt", "rb") as t:
current_filesize = t.seek(0, 2)
while True:
new_filesize = t.seek(0, 2)
if new_filesize > current_filesize:
print("file changed")
print(new_filesize, current_filesize)
t.seek(current_filesize)
readsize = new_filesize - current_filesize
data = t.read(readsize)
myjson = json.loads(data.decode("utf-8"))
print(myjson)
agearray.append(myjson["age"])
print(statistics.median(agearray))
current_filesize = new_filesize
这不是最好的例子,但这是我的方法。
您必须在两个不同的线程中启动文件,例如2x cmd或git bash ...