使用hashlib进行文件校验

import hashlib
import os

path = r'D:\CentOS 64 位'


def file_md5(path):
    """
    文件校验
    :param path:文件的路径
    :return: 文件的密文
    """
    path_size = os.path.getsize(path)  # 计算文件的大小
    md5 = hashlib.md5()  # 选择md5加密
    with open(path, 'rb') as f:
        while path_size >= 4096:  # 如果文件大小大于4096,进入循环
            cont = f.read(4096)  # 每次读取文件读取4096个字节
            md5.update(cont)
            path_size -= 4096
        else:
            cont = f.read()  # 如果文件小于4096就直接全部读取
            if cont:
                md5.update(cont)
    return md5.hexdigest()  # 返回加密的文件


def jy(path1, path2):
    """
    传送文件去校验
    :param path1:  第一个文件
    :param path2:  第二个文件
    :return: 结果(True,False)
    """
    return file_md5(path1) == file_md5(path2)


path1 = r'D:\CentOS 64 位\CentOS 64 位-Snapshot1.vmem'
path2 = r'D:\CentOS 64 位\CentOS 64 位-Snapshot1 - 副本.vmem'
print(jy(path1, path2))

 

posted @ 2019-03-25 19:05  msKk1  Views(443)  Comments(0Edit  收藏  举报