目录的哈希值

时间:2016-12-02 12:37:15

标签: python directory md5 subdirectory

有没有办法确定文件系统中只有目录的md5哈希值?

我不想要文件的哈希值。我只想要目录和子目录的值。

2 个答案:

答案 0 :(得分:0)

我认为它对python没有问题,而是OS:

>>> 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哈希不适用于目录,仅适用于文件。

答案 1 :(得分:0)

如果您确实需要计算目录的hash - 您可能只计算此目录路径的哈希值。 (如前所述,目录可能不是特定操作系统中文件系统的可清除对象)

例如:

my_dir_path = 'C:\some\dir\name'
my_dir_hash = hash(my_dir_path)

此解决方案具有跨平台,快速且强大的功能。