Я пытаюсь отслеживать CSV-файл, который записывается отдельной программой. Примерно каждые 10 секунд файл CSV обновляется еще парой строк. Каждый раз, когда файл обновляется, я хочу иметь возможность обнаруживать, что файл был изменен (всегда будет один и тот же файл), брать новые строки и записывать их в консоль (только для теста).
Я просмотрел веб-сайт и нашел множество способов просмотра файла, чтобы узнать, обновлен ли он (например, http://thepythoncorner.com/dev/how-to-create-a-watchdog-in-python-to-look-for-filesystem-changes/), но я не могу ничего найти это позволит мне получить изменения, внесенные в файл, для вывода на консоль.
Текущий код:
import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
def on_created(event):
print(f"hey, {event.src_path} has been created!")
def on_deleted(event):
print(f"Someone deleted {event.src_path}!")
def on_modified(event):
print(f"{event.src_path} has been modified")
def on_moved(event):
print(f"ok ok ok, someone moved {event.src_path} to {event.dest_path}")
if __name__ == "__main__":
patterns = "*"
ignore_patterns = ""
ignore_directories = False
case_sensitive = True
my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive)
my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved
path = "."
go_recursively = True
my_observer = Observer()
my_observer.schedule(my_event_handler, path, recursive=go_recursively)
my_observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_observer.stop()
my_observer.join()
Это выполняется, но ищет изменения в файлах повсюду. Как заставить его прослушивать изменения из одного файла?