python watchdog

时间:2022-06-06 05:21:04

监视文件变更

#!/usr/bin/python
# -*- coding:UTF-8 -*- import time
from watchdog.observers import Observer
from watchdog.events import RegexMatchingEventHandler class MyHandler(RegexMatchingEventHandler): def __init__(self, regex_list=[r".*"]):
super(MyHandler, self).__init__(regex_list) def on_created(self, event):
if event.is_directory:
pass
else:
print(event.event_type, event.src_path) def on_deleted(self, event):
if event.is_directory:
pass
else:
print(event.event_type, event.src_path) def on_modified(self, event):
if event.is_directory:
pass
else:
print(event.event_type, event.src_path) def on_moved(self, event):
print("move", event.src_path, event.dest_path) if __name__ == "__main__":
reges = [r".*\.c", r".*\.h", r".*\.cpp"]
event_handler = MyHandler(reges)
observer = Observer()
observer.schedule(event_handler, ".", recursive=True)
observer.start() try:
print("start my watch")
while True:
time.sleep(100)
except KeyboardInterrupt:
observer.stop()
observer.join()

读取配置文件

# -*- coding: utf-8

from configparser import ConfigParser

def get_config(section_name="env", conf_file="ssh-config.ini"):
'''
:param section_name:
:param conf_file:
:return dictornary: eg.
[env]
user = root
password = root123 return {"user":"root", "password":"root123"}
'''
config = ConfigParser()
config.read_file(open(conf_file))
return dict(config.items(section_name)) for k, v in get_config().items():
print(k, ":", v)