我有一个文本文件,每 10 秒由另一个程序写入一次。我的代码通过这个文件并解析我想要的数据。但在某些时候 for 循环到达文件末尾并且程序关闭。
目标:我希望程序在 for 循环内等待更多数据到来,以便它也解析新数据。
我用一段时间尝试了它,条件是留下要读取的行,但由于某种原因,程序在退出 while 循环后只是停止了一点。如果我添加让我们说 25 行......它会处理其中的 9 个和然后程序退出for循环并且程序完成(不崩溃)
问题:有没有更好的方法让程序空闲直到新数据到达?这段代码有什么问题?
k = -1
with open('epideiksh.txt') as weather_file:
for line in weather_file:
k = k+1
lines_left = count_lines_of('epideiksh.txt') - k
while ( lines_left <= 10 ):
print("waiting for more data")
time.sleep(10)
pointer = count_lines('epideiksh.txt') - k
if line.startswith('Heat Index'):
do_my_thing()
time.sleep(10)