Есть ли способ определить значения хэша md5 только для каталогов в файловой системе?Хэш-значения каталогов
Я не хочу хэш-значение файлов. Мне нужны только значения для каталогов и подкаталогов.
Есть ли способ определить значения хэша md5 только для каталогов в файловой системе?Хэш-значения каталогов
Я не хочу хэш-значение файлов. Мне нужны только значения для каталогов и подкаталогов.
Я думаю, что это не вопрос к питона но ОС:
>>> print(hashlib.md5(open('/home/tuls/dev', 'rb').read()).hexdigest())
...
IsADirectoryError: [Errno 21] Is a directory: '/home/tuls/dev'
и в консоли то же самое:
~$ md5sum /home/tuls/dev/
md5sum: /home/tuls/dev/: Is a directory
Это потому, что каталог не содержит данные, только файлы, содержащие данные, , Смотри:
~$ du -hs Documents/
2,9G Documents/
~$ ls -lhd Documents/
drwxr-xr-x 5 tuls tuls 4,0K гру 2 11:21 Documents/
Существует 2,9G в каталоге, но вес директории 4,0K (только метаданные)
Ответ на ваш вопрос - md5 хэш не применяется для каталогов, только для файлов ,
Если вам действительно нужно рассчитать hash
в каталоге - вы можете просто рассчитать хэш пути этого каталога. (Как уже упоминалось выше, каталог не может быть hashable объект файловой системы в конкретной ОС)
Например:
my_dir_path = 'C:\some\dir\name'
my_dir_hash = hash(my_dir_path)
Это решение является кросс-платформенным, быстрый и надежный.
Есть ли способ вычислить значение хэша для каталогов/подкаталогов, но не файлов? –