tools.py 654 B

123456789101112131415161718192021222324
  1. # coding:utf-8
  2. import hashlib
  3. def calculate_file_hash(file_path, hash_algorithm='sha256'):
  4. """
  5. 计算文件的哈希值
  6. :param file_path: 文件路径
  7. :param hash_algorithm: 哈希算法,默认为sha256
  8. :return: 文件的哈希值
  9. """
  10. # 创建哈希对象
  11. hash_obj = hashlib.new(hash_algorithm)
  12. # 以二进制方式打开文件
  13. with open(file_path, 'rb') as f:
  14. # 循环读取文件内容,更新哈希对象
  15. for chunk in iter(lambda: f.read(4096), b''):
  16. hash_obj.update(chunk)
  17. # 获取哈希值的十六进制表示
  18. file_hash = hash_obj.hexdigest()
  19. return file_hash