-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwatchdog_example.py
98 lines (85 loc) · 2.21 KB
/
watchdog_example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : watchdog_example.py
# @Author: yubo
# @Date : 2018/12/3
# @Desc :
#
import sys
import time
import json
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
class MyHandler(PatternMatchingEventHandler):
patterns = ["abc.json"]
def process(self, event):
"""
event.event_type
'modified' | 'created' | 'moved' | 'deleted'
event.is_directory
True | False
event.src_path
path/to/observed/file
"""
with open(event.src_path, 'r') as load_f:
load_dict = json.load(load_f)
print(load_dict)
def on_modified(self, event):
self.process(event)
def on_created(self, event):
self.process(event)
if __name__ == '__main__':
observer = Observer()
observer.schedule(MyHandler(), ".")
try:
observer.start()
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
#
# import time
# from watchdog.observers import Observer
# from watchdog.events import FileSystemEventHandler
#
#
# class Watcher:
# DIRECTORY_TO_WATCH = "."
#
# def __init__(self):
# self.observer = Observer()
#
# def run(self):
# event_handler = Handler()
# self.observer.schedule(event_handler, self.DIRECTORY_TO_WATCH, recursive=True)
# self.observer.start()
# try:
# while True:
# time.sleep(5)
# except:
# self.observer.stop()
# print "Error"
#
# self.observer.join()
#
#
# class Handler(FileSystemEventHandler):
#
# @staticmethod
# def on_any_event(event):
# if event.is_directory:
# return None
#
# elif event.event_type == 'created':
# # Take any action here when a file is first created.
# print "Received created event - %s." % event.src_path
#
# elif event.event_type == 'modified':
# # Taken any action here when a file is modified.
# print "Received modified event - %s." % event.src_path
#
#
# if __name__ == '__main__':
# w = Watcher()
# w.run()