python-mastery/cofollow.py
2024-01-21 13:10:31 -06:00

35 lines
627 B
Python

import os
import time
from functools import wraps
def follow(filename, target):
with open(filename, 'r') as f:
f.seek(0, os.SEEK_END)
while True:
line = f.readline()
if line != '':
target.send(line)
else:
time.sleep(0.1)
def consumer(func):
@wraps(func)
def start(*args, **kwargs):
f = func(*args, **kwargs)
f.send(None)
return f
return start
@consumer
def printer():
while True:
item = yield
print(item)
if __name__ == '__main__':
follow('Data/stocklog.csv', printer())