我正在尝试获取传感器数据并通过JSON将其绘制成图形。 我想读取前100个传感器值并创建一个文件,在100之后,我想用101替换第1个,用102等替换第2个,以便文件不断显示最新的100行。
假设我每隔3秒就有一个随机数据流进入标准输出,例如此..
from random import randint
import time
def loop():
print(randint(100,200))
while True:
loop()
time.sleep(3)
如何捕获100行输出,并将此数据写入文件?
理想情况下,每次ping新数据都应该替换该文件。 谢谢你的帮助!
答案 0 :(得分:0)
原油解决方案:
from random import randint
import time
def loop():
return randint(100,200)
def save_lst(lst):
with open("mon_fich", "w") as f:
f.write(", ".join(lst))
lst = list()
while True:
lst.append(str(loop()))
if len(lst)>=100:
save_lst(lst)
lst = list()
time.sleep(0.001)
答案 1 :(得分:0)
如何保持计数器变量,并在每次达到100(模100)时将其重置为0。此变量可用作写入文件的索引:
i = 0
while True:
write_file(i, loop(), filename)
i += 1
i = i % 100
def write_file(line, input, filename):
with open(filename, 'r') as f:
lines = f.readlines()
lines[line] = input # <=== Replace the nth line with current input
with open(filename, 'w') as f:
f.writelines(lines)
out.close()