【发布时间】:2013-12-13 10:52:01
【问题描述】:
我想根据Python 中的文件路径生成数字或字母数字(以更容易者为准)的唯一 ID。我正在开发一个文件解析应用程序,并且数据库中有一个带有后代的文件实体,为了拥有比文件的完全限定路径更紧凑的外键/主键,我想将其转换为最短的尽可能唯一的摘要。
我有哪些选择来做到这一点?我可以使用SHA吗?
如果我只是从完全限定的路径字符串中取出一个 MD5 校验和并得到类似 1736622845 的内容,那会怎样?在命令行上,可以使用
echo -n '/my/path/filename' | cksum | cut -d' ' -f1
是否保证不会重复两个不同的输入?如果是,我将如何将上述bash 管道命令转换为纯 Python,这样我就不必调用系统调用但获得相同的值?
【问题讨论】:
-
你可以使用
import uuid; uuid.uuid4()。 -
我怀疑
UUID在大小方面是最佳的 -
您可以缩短
UUID,只取第一个N字符。 -
我认为从
SHA or MD5生成哈希对你来说太长了(32 字节)。 -
可以,但是校验和非常昂贵,可能需要很长时间和硬件。
标签: python uniqueidentifier sha