我正在写一些代码来获取文件夹中每个exe文件的md5。
我的问题是我不知道怎么做。只有当文件夹只包含一个文件时,它才起作用。这是我的代码:
import glob
import hashlib
file = glob.glob("/root/PycharmProjects/untitled1/*.exe")
newf = str (file)
newf2 = newf.strip( '[]' )
newf3 = newf2.strip("''")
with open(newf3,'rb') as getmd5:
data = getmd5.read()
gethash= hashlib.md5(data).hexdigest()
print gethash
我得到的结果是:
a7f4518aae539254061e45424981e97c
我想知道如何处理文件夹中的多个文件。
glob.glob
返回文件列表。只需使用for
遍历列表:注意,如果您碰巧在该目录中有一个大文件,那么这可能会耗尽您的内存,因此它是better to read the file in smaller chunks(这里适合于1 MiB块):
我想最后,你只打开了一个空文件。其原因是您获取由
glob
返回的列表,并删除其字符串表示形式中的列表标记(并且仅在使用strip
时在字符串的两端)。这给了你类似的东西:然后给这个字符串以打开,它将尝试打开一个名为的文件。事实上,我甚至惊讶于它的工作(除非你只有一个文件)!你应该得到一个
FileNotFoundError
。您要做的是迭代由
glob.glob
返回的所有文件:相关问题 更多 >
编程相关推荐