def calcHashAndSize(self): if os.path.isfile(self.fileName + ".fileDat"): with open(self.fileName + ".fileDat", 'rb') as f: fd = pickle.load(f) h, fileSize = fd.fileHash, fd.fileSize else: h = Hash() BUF_SIZE = 65536 fileSize = 0 with open(self.fileName, 'rb') as f: while True: data = f.read(BUF_SIZE) if not data: break h.update(data) fileSize += len(data) h = h.calculateHash() return h, fileSize