fileMonitor.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -*- coding: utf-8 -*-
  2. """
  3. -------------------------------------------------
  4. File Name: fileMonitor
  5. Description :
  6. Author : CoolCat
  7. date: 2019/1/3
  8. -------------------------------------------------
  9. Change Activity:
  10. 2019/1/3:
  11. -------------------------------------------------
  12. """
  13. __author__ = 'CoolCat'
  14. from watchdog.observers import Observer
  15. from watchdog.events import *
  16. import time
  17. global doWithout
  18. global showDir
  19. class FileEventHandler(FileSystemEventHandler):
  20. def __init__(self):
  21. FileSystemEventHandler.__init__(self)
  22. def on_moved(self, event):
  23. ### 文件移动显示青色
  24. if doWithout in event.src_path:
  25. pass
  26. elif event.is_directory and showDir == "y":
  27. print(time.strftime('[%H:%M:%S]:') + "\033[0;36m%s\033[0m" % "directory moved from {0} to {1}".format(event.src_path,event.dest_path))
  28. pass
  29. elif event.is_directory == False:
  30. print(time.strftime('[%H:%M:%S]:') + "\033[0;36m%s\033[0m" % "file moved from {0} to {1}".format(event.src_path,event.dest_path))
  31. def on_created(self, event):
  32. ### 文件创建显示绿色
  33. if doWithout in event.src_path:
  34. pass
  35. elif event.is_directory and showDir == "y":
  36. print(time.strftime('[%H:%M:%S]:') + "\033[5;32m%s\033[0m" % "directory created:{0}".format(event.src_path))
  37. pass
  38. elif event.is_directory == False:
  39. print(time.strftime('[%H:%M:%S]:') + "\033[5;32m%s\033[0m" % "file created:{0}".format(event.src_path))
  40. def on_deleted(self, event):
  41. ### 文件删除显示红色
  42. if doWithout in event.src_path:
  43. pass
  44. elif event.is_directory and showDir == "y":
  45. print(time.strftime('[%H:%M:%S]:') + "\033[0;31m%s\033[0m" % "directory deleted:{0}".format(event.src_path))
  46. pass
  47. elif event.is_directory == False:
  48. print(time.strftime('[%H:%M:%S]:') + "\033[0;31m%s\033[0m" % "file deleted:{0}".format(event.src_path))
  49. def on_modified(self, event):
  50. ### 文件修改显示蓝色
  51. if doWithout in event.src_path:
  52. pass
  53. elif event.is_directory and showDir == "y":
  54. print(time.strftime('[%H:%M:%S]:') + "\033[0;34m%s\033[0m" % "directory modified:{0}".format(event.src_path))
  55. pass
  56. elif event.is_directory == False:
  57. print(time.strftime('[%H:%M:%S]:') + "\033[0;34m%s\033[0m" % "file modified:{0}".format(event.src_path))
  58. def help():
  59. print("""
  60. _____________
  61. < FileMonitor >
  62. -------------
  63. /\_)o<
  64. | |
  65. | O . O |
  66. \_____/
  67. By CoolCat
  68. """)
  69. if __name__ == "__main__":
  70. help()
  71. import sys
  72. if sys.version_info.major == 2:
  73. try:
  74. monitorDir = raw_input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:")
  75. doWithout = raw_input(time.strftime('[%H:%M:%S]:') + "Unnecessary directory:")
  76. showDir = raw_input(time.strftime('[%H:%M:%S]:') + "Display directory changes(y or n):")
  77. except:
  78. pass
  79. else:
  80. monitorDir = input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:")
  81. doWithout = input(time.strftime('[%H:%M:%S]:') + "Unnecessary directory:")
  82. showDir = input(time.strftime('[%H:%M:%S]:') + "Display directory changes(y or n):")
  83. print(time.strftime('[%H:%M:%S]:') + "\033[0;31m%s\033[0m" % "FileMonitor is running...")
  84. # # monitorDir = "/Users/CoolCat/php"
  85. # print(type(monitorDir))
  86. observer = Observer()
  87. event_handler = FileEventHandler()
  88. observer.schedule(event_handler,monitorDir,True)
  89. observer.start()
  90. try:
  91. while True:
  92. time.sleep(1)
  93. except KeyboardInterrupt:
  94. observer.stop()
  95. observer.join()