Guest User

Untitled

a guest
Dec 15th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from watchdog.events import FileSystemEventHandler
  4. from watchdog.observers import Observer
  5.  
  6. import os
  7. import time
  8.  
  9. target_dir = r"対象フォルダのパス"
  10.  
  11. class ChangeHandler(FileSystemEventHandler):
  12. def on_modified(self, event):
  13. filepath = event.src_path
  14. filename = os.path.basename(filepath)
  15. print('%sを変更しました' % filename)
  16.  
  17. if __name__ in '__main__':
  18. while 1:
  19. event_handler = ChangeHandler()
  20. observer = Observer()
  21. observer.schedule(event_handler, target_dir, recursive=True)
  22. observer.start()
  23. try:
  24. while True:
  25. time.sleep(0.1)
  26. except KeyboardInterrupt:
  27. observer.stop()
  28. observer.join()
  29.  
  30. test.txtを変更しました
  31. test.txtを変更しました
  32.  
  33. class ChangeHandler(FileSystemEventHandler):
  34. def on_created(self, event):
  35. filepath = event.src_path
  36. filename = os.path.basename(filepath)
  37. print('%sができました' % filename)
  38.  
  39. def on_modified(self, event):
  40. filepath = event.src_path
  41. filename = os.path.basename(filepath)
  42. print('%sを変更しました' % filename)
  43.  
  44. test - コピー.txtができました
  45. test - コピー.txtを変更しました
  46. test - コピー.txtを変更しました
  47.  
  48. import hashlib
  49. hashes = {}
  50.  
  51. def on_modified(self, event):
  52. filepath = event.src_path
  53. filename = os.path.basename(filepath)
  54. with open(filepath, 'rb') as f:
  55. checksum = hashlib.md5(f.read()).hexdigest()
  56. if filename not in hashes or (hashes[filename] != checksum):
  57. hashes[filename] = checksum
  58. print('%sを変更しました' % filename)
  59. else:
  60. # ハッシュが既存のものと変更していない
  61. pass
Add Comment
Please, Sign In to add comment