Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2018 14:17:23

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно вычислить хэш zip архива

Нужно вычислить хэш zip архива, делаю так:

         
hash_md5 = md5()
hash_md5.update(file)
Когда в качестве file берем zip архив(ZipFile), то возникает ошибка
Error: object supporting the buffer API required
пробовал переделать hash_md5.update(file.encode()), выдает ошибку ‘ZipFile’ object has no attribute ‘encode’,
как поправить?

Офлайн

#2 Ноя. 23, 2018 19:56:31

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Нужно вычислить хэш zip архива

Не пробовали открыть файл в режиме ‘rb’, например так

 with open(filename, "rb") as file:
    hash_md5.update(file)
Если файл слишком большой, то читай по частям и для каждой части обновление хэша.

Офлайн

#3 Ноя. 23, 2018 22:23:20

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Нужно вычислить хэш zip архива

Rafik
Зачем пробовать, гадать, когда можно посмотреть документацию и увидеть что update принимает в общем то байты. Поэтому правильный ответ, например, читать данные порциями и обновлять ими hash_md5 объект. И да конечно файл надо открывать в бинарном режиме, а не текстовом.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version