Python如何基于文件内容创建UUID

2024-06-25 23:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在看documentation,在示例部分,我没有看到如何根据文件内容创建UUID。谷歌也没有帮助我。在

我试过了:

>>> import uuid
>>> data = open('/media/emmc/DCIM/100ABC06/00059.JPG','rb')
>>> contents = data.read()
>>> len(contents)
9155
>>> uuid = uuid.UUID(contents)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/uuid.py", line 134, in __init__
ValueError: badly formed hexadecimal UUID string

还有这个:

^{pr2}$

请帮助我理解如何根据python2.7中的文件内容生成UUID。在


Tags: 文件inimport示例内容datauuiddocumentation
2条回答

将字符串传递给uuid.UUID()时,该字符串必须是32或16个十六进制数字。在

参考文档https://docs.python.org/2/library/uuid.html

从32个十六进制数字的字符串、16个字节的字符串作为字节参数、16个字节的低位顺序字符串作为字节参数、6个整数的元组(32位time_low、16位time_mid、16位time_hi_version、8位clock seq_hi_variant、8位clock seq_low、48位节点)创建一个UUID,或单个128位整数作为int参数。当给定一个十六进制数字串时,大括号、连字符和URN前缀都是可选的。例如,这些表达式都生成相同的UUID:

UUID('{12345678-1234-5678-1234-567812345678}')
UUID('12345678123456781234567812345678')
UUID('urn:uuid:12345678-1234-5678-1234-567812345678')
UUID(bytes='\x12\x34\x56\x78'*4)
UUID(bytes_le='\x78\x56\x34\x12\x34\x12\x78\x56' +
              '\x12\x34\x56\x78\x12\x34\x56\x78')
UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678))
UUID(int=0x12345678123456781234567812345678)

如果你想创建一个文件内容的哈希,你可能不需要UUID。相反,您应该使用hashlib和MD5、SHA-1、SHA-256或任何其他受支持的算法来创建文件的指纹。在

相关问题 更多 >