我已经编写了一个脚本来为我的尼康原始文件 (.NEF) 生成自定义缩略图。到目前为止,一切都很好。现在缩略图文件名必须是 NEF 图像的绝对路径的 md5,如此处所述链接。
我生成的 md5 与系统生成的不匹配,这里有一些 .jpg 文件的测试
path = 'file:///home/ricardo/Área de Trabalho/TempImgX/capa_site_01.jpg'
StrNoSpecial = 'file%3A%2F%2F%2Fhome%2Fricardo%2F%C3%81rea%20de%20Trabalho%2FTempImgX%2Fcapa_site_01.jpg'
print(hashlib.md5((path).encode()).hexdigest())
print(hashlib.md5((StrNoSpecial).encode()).hexdigest())
结果:
f9aa4e24d9942a1b120ecc5b7af360f9
5dd1386290a8ea7642d5864c349c28d4
拇指上当前工作缩略图的 md5。文件夹:
1f6cd39593b60e303d26856ffa471689
如您所见,哈希值不同。特殊字符是这里的问题吗?
文件名的正确编码似乎是:
即:用
%20
和Á
替换所有空格%C3%81
。不要替换斜杠/
和冒号:
。然后(在bash中):正如@Rinzwind在评论中所说,
不幸的是,您不能将此规则应用于完整的 URI
file:///home/ricardo/Área de Trabalho/TempImgX/capa_site_01.jpg
,因为这给出了file%3A%2F%2F%2Fhome%2Fricardo%2F%C3%81rea%20de%20Trabalho%2FTempImgX%2Fcapa_site_01.jpg
并且没有成功。相反,该 NEF/缩略图工具的算法似乎是这样工作的:
/home/ricardo/Área de Trabalho/TempImgX/capa_site_01.jpg
)拆分/
为多个部分/
file://
md5
结果字符串。