Python Glossary English

Python 3.11+hashlibфункция

hashlib.file_digest()

хеширование

Хеш содержимого файла одной строкой: читает открытый в двоичном режиме файл кусками и возвращает готовый хеш-объект.

Синтаксис

hashlib.file_digest(fileobj, digest, /)

Заменяет ручной цикл с f.read(65536) и update(), при этом память не зависит от размера файла. Файл, открытый в текстовом режиме, отвергается с ValueError — нужен 'rb'. Возвращается объект, а не строка: дальше зовут hexdigest(). Закрывает файл вызывающий, поэтому вызов ставят внутрь with.

Примеры

import hashlib
with open('data.bin', 'wb') as f:
    f.write(b'hello world')
with open('data.bin', 'rb') as f:
    digest = hashlib.file_digest(f, 'sha256')
print(digest.hexdigest()[:16])  # → b94d27b9934d3e08
import hashlib
with open('data.txt', 'w') as f:
    f.write('hello world')
with open('data.txt') as f:
    try:
        hashlib.file_digest(f, 'sha256')
    except ValueError:
        print('нужен режим rb')  # → нужен режим rb

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности