main.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. # -*- coding: utf-8 -*-
  2. """
  3. -------------------------------------------------
  4. File Name: mian
  5. Description :
  6. Author : CoolCat
  7. date: 2019/5/11
  8. -------------------------------------------------
  9. Change Activity:
  10. 2019/5/11:
  11. -------------------------------------------------
  12. """
  13. __author__ = 'CoolCat'
  14. import os
  15. import hashlib
  16. import time
  17. def monitor(dir):
  18. fileDirs = []
  19. for root, dirs, files in os.walk(dir, topdown=False):
  20. for name in files:
  21. # print(os.path.join(root, name))
  22. fileDirs.append(os.path.join(root, name))
  23. return fileDirs
  24. # for name in dirs:
  25. # print(os.path.join(root, name))
  26. def calcMD5(filepath):
  27. try:
  28. with open(filepath, 'rb') as f:
  29. md5obj = hashlib.md5()
  30. md5obj.update(f.read())
  31. hash = md5obj.hexdigest()
  32. # print(hash)
  33. return "修改了" + filepath + " Hash为:" + hash
  34. except:
  35. pass
  36. def help():
  37. print("""
  38. _____________
  39. < FileMonitor >
  40. -------------
  41. /\_)o<
  42. | |
  43. | O . O |
  44. \_____/
  45. By CoolCat
  46. """)
  47. def getDir():
  48. try:
  49. dir = str(raw_input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:"))
  50. except:
  51. dir = str(input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:"))
  52. pass
  53. return dir
  54. if __name__ == '__main__':
  55. help()
  56. try:
  57. dir = str(raw_input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:"))
  58. except:
  59. dir = str(input(time.strftime('[%H:%M:%S]:') + "Please enter a directory:"))
  60. pass
  61. # dir = "../Aliyun/"
  62. print(time.strftime('[%H:%M:%S]:') + "FileMonitor is running...")
  63. # print(dir)
  64. a = monitor(dir)
  65. while True:
  66. #print(len(a))
  67. b = monitor(dir)
  68. #print(len(b))
  69. if len(a) > len(b):
  70. c = list(set(a).difference(set(b)))
  71. try:
  72. # print(len(a))
  73. # print(len(b))
  74. # print(len(c))
  75. print(time.strftime('[%H:%M:%S]:') + "删除了" + str(c[-1]))
  76. # a = b
  77. except:
  78. pass
  79. elif len(b) > len(a):
  80. c = list(set(b).difference(set(a)))
  81. try:
  82. print(time.strftime('[%H:%M:%S]:') + "新建了" + str(c[-1]))
  83. # a = b
  84. except:
  85. pass
  86. elif len(a) == len(b):
  87. # print(len(a))
  88. # print(len(b))
  89. # print(len(c))
  90. aList = []
  91. for pathName in a:
  92. hash = calcMD5(pathName)
  93. aList.append(hash)
  94. #print(aList)
  95. bList = []
  96. for pathName in b:
  97. hash = calcMD5(pathName)
  98. bList.append(hash)
  99. #print(bList)
  100. cList = list(set(aList).difference(set(bList)))
  101. if len(cList) != 0:
  102. try:
  103. # print(len(aList))
  104. # print(len(bList))
  105. # print(len(cList))
  106. print(time.strftime('[%H:%M:%S]:') + cList[-1])
  107. except:
  108. pass
  109. # a = b
  110. else:
  111. pass
  112. a = b
  113. else:
  114. pass
  115. a = b
  116. #break