gpt4 book ai didi

python - 将字典值传递给哈希函数

转载 作者:行者123 更新时间:2023-11-28 22:09:43 24 4
gpt4 key购买 nike

我有一本字典,其中的值包含文件名及其路径。

我还有一个 MD5 哈希函数,我想用字典中的相关值调用它。

with open('/tmp/foo') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
files[row['size']].append(row['file'])
# print the contents of the files defaultdict dictionary
for key, value in files.items():
if len([item for item in value if item]) > 1:
print (key+'\n')
print(md5Checksum(value))

我的 md5 函数是:

def md5Checksum(filePath):
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()

当我按原样调用它时

TypeError: expected str, bytes or os.PathLike object, not list

如果我将调用命令更改为:

print(md5Checksum(**value))

我得到:

TypeError: md5Checksum() argument after ** must be a mapping, not list'

有人可以指出我遗漏的明显修复方法吗?

最佳答案

根据其余代码,您的 是文件名列表,而不是文件名。因此,您应该添加一个额外的循环。 将文件名添加到列表之前进行过滤可能会更好:

with open('/tmp/foo') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
<b>if row['file']:</b> # preventing adding the file in the first place
files[row['size']].append(row['file'])


for key, <b>values</b> in files.items():
<b>for value in values:</b>
print ('{}\n{}'.format(key, md5Checksum(value)))

关于python - 将字典值传递给哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com