[英]Python How to Create UUID Based on File Contents
我正在查看文檔 ,在示例部分中,我沒有看到如何基於文件內容創建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
這個:
>>> uuid = uuid.UUID(str(contents))
>>> uuid = uuid.UUID(contents.decode('ascii'))
>>> uuid = uuid.UUID(contents.decode('utf8'))
請幫助我了解如何基於Python 2.7中的文件內容生成UUID。
如果要創建文件內容的哈希,則可能不需要UUID。 相反,您應該使用hashlib和MD5,SHA-1,SHA-256或任何其他支持的算法來創建文件的指紋。
將字符串傳遞給uuid.UUID()
,字符串必須是32或16個十六進制數字。
從一個32位十六進制數字的字符串,一個16字節的字符串作為bytes參數創建一個UUID,一個16字節的字符串,以little-endian順序作為bytes_le參數,一個六元組的元組(32位time_low,16- bit time_mid,16-bit time_hi_version,8-bit clock_seq_hi_variant,8-bit clock_seq_low,48-bit node)作為fields參數,或者單個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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.