1. import md5,zlib,os
  2. import sys
  3. #import app
  4. SUBFOLDER_CHECK = 0
  5. target_folder = "D:/M2/Pvp/"
  6. LogFile = 'Gtools_log.txt'
  7. if not os.path.exists(LogFile):
  8. a=open(LogFile, "a")
  9. a.close()
  10. def Log(wut):
  11. yaz=open(LogFile, "w")
  12. yaz.write(wut)
  13. yaz.close()
  14. def Hata(wut):
  15. Log(wut)
  16. os.popen("start " + LogFile)
  17. #app.Exit()
  18. def GetCrc(fileName):
  19. prev = 0
  20. for eachLine in open(fileName,"rb"):
  21. prev = zlib.crc32(eachLine, prev)
  22. crccikti = str("%X"%(prev & 0xFFFFFFFF))
  23. return crccikti.lower()
  24. def GetMd5(file):
  25. m = md5.new()
  26. fp = open(file,"rb")
  27. while 1:
  28. data = fp.read(1024)
  29. if not data:break
  30. m.update(data)
  31. fp.close()
  32. hashcikti = m.hexdigest()
  33. return hashcikti.lower()
  34. def GetSize(file):
  35. return str(os.path.getsize(file))
  36. def ReturnHash(file,size,md5,crc):
  37. if GetMd5(file) != md5 : Hata("Md5 Hatasi: " + file)
  38. elif GetCrc(file) != crc: Hata("Crc Hatasi: " + file)
  39. elif GetSize(file) != size: Hata("Boyut Hatasi: " + file)
  40. def SetFolderData(s):
  41. setdata=open(LogFile, "a")
  42. setdata.writelines(s + '\n')
  43. setdata.close()
  44. def GetFolderData():
  45. global target_folder
  46. r = ""
  47. newlist = []
  48. liste = [f for f in os.listdir(target_folder) if os.path.isfile]
  49. if not SUBFOLDER_CHECK:
  50. for i in xrange(len(liste)):
  51. for c in liste:
  52. if int(GetSize(target_folder + c)) > 0:
  53. if "." in c:
  54. newlist.append(c)
  55. break
  56. for q in xrange(len(newlist)):
  57. for v in newlist:
  58. print "FILE: " + target_folder + v + " SIZE: " + str(GetSize(target_folder + v)) + " MD5: " + GetMd5(target_folder + v) + " CRC: " + GetCrc(target_folder + v)
  59. SetFolderData(" ['" + target_folder + v + "','" + str(GetSize(target_folder + v)) + "','" + GetMd5(target_folder + v) + "','" + GetCrc(target_folder + v) + "']")
  60. break
  61. os.popen("start "+os.getcwd()+"\\"+LogFile)
  62. if SUBFOLDER_CHECK:
  63. for root, dirs, files in os.walk(target_folder):
  64. path = root.split('/')
  65. for file in files:
  66. if not path[-1] == "": r = '/'
  67. cikti = target_folder+str(path[-1])+r+file
  68. print cikti
  69. SetFolderData(" ['" + target_folder.split("/")[-1]+str(path[-1])+r+file + "','" + str(GetSize(cikti)) + "','" + GetMd5(cikti) + "','" + GetCrc(cikti) + "']")
  70. os.popen("start "+os.getcwd()+"\\"+LogFile)
  71. def Control():
  72. # FILE SIZE MD5 CRC
  73. FileList = [
  74. ['uitaskbar.py','59801','38365e196f9d26dadf85a4e253f638c7','b1a49039'],
  75. ['uitaskbar.pyc','49195','b2df8f9ba38a3db44baa648a4bfd705f','6ddf37d4'],
  76. ]
  77. for i in xrange(len(FileList)):
  78. for x in FileList:
  79. ReturnHash(x[0], x[1], x[2], x[3])
  80. break
  81. ###IF GET HASH
  82. #GetFolderData()
  83. ###IF CHECK HASH
  84. Control()

dir check python