python 的uuid库是用来生成一串唯一表示的包,uuid是一个 32 位的16进制数,用来设置唯一的辨识信息,具体uuid功能查看维基百科
uuid库的使用方法(uuid使用文档翻译):
uuid 帮助模块:
uuid - UUID 对象(全局唯一标识符)根据 RFC 4122
文件:
/usr/lib/python2.7/uuid.py
模块文档:
http://docs.python.org/library/uuid
描述:
这个模块提供了不可变对象 UUID(class uuid)的功能
uuid1(), uuid3(), uuid4(), uuid5() 有生成版本 1, 3, 4和5
UUIDs 就像 RFC 4122 中定义的那样
如果你想有一个唯一的 ID,你应该调用 uuid1() 和 uuid4()
注意,uuid1() 可能会损害隐私,因为他创建了一个 UUID 包含电脑的 网络地址,uuid4() 创建一个随机的UUID
典型用法:
>>>import uuid
#创建一个 UUID 基于主机ID和当前的时间
>>>uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')
#使用MD5加密的名称空间和一个名称创建一个UUID
>>>uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
#创建一个随机的UUID
>>>uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')
#使用sha-1加密的名称空间和一个名称创建一个UUID
#把一个32位的16进制字符串转换成一个 UUID(忽略括号和连字符)
>>>x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')
#将UUID转换成标准形式的十六进制字符串
>>>str(x)
#得到原始16字节的UUID
>>>x.bytes()
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
#将16字节的字符串转换成 UUID
>>>uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
<div class="row"><div class="row small_font" id="outputText"><div class="translated_result"><p class="tgt"> UUID对象是不可变的,hashable,可用字典键</p><p class="tgt"> 将一个UUID转换为一个字符串str()收益率的形式“12345678 - 1234 - 1234 - 1234 - 123456789 - abc”。</p><p class="tgt"> UUID构造函数接受5个可能的形式:一个类似的十六进制数字的字符串,或一个六元组整数字段(32位、16位、16位,8位,8位,分别和48比特位值)作为参数命名为“字段”,或16字</p><p class="tgt"> 节的字符串(所有整数字段在高位优先顺序)作为参数命名为“字节”,或16字节的字符串(前三个字段低位优先顺序)作为参数命名为“bytes_le”,或一个128位整数作为参数命名为“</p><p class="tgt"> int”。如果没有“节点”,getnode()用于获取硬件地址。如果“clock_seq”,它是用作序列号;</p></div></div></div>
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)
功能(在典型用法中有说明)
getnode()
获得硬件地址作为48 比特位正整数
第一次运行,它可能会启动一个单独的程序,这可能十分缓慢,如果所有尝试获得硬件地址失败的话,我们会选
择一个48比特位的数,他的第八位将会设置成1
uuid1(node=None, clock_seq=None)
从主机ID, 序列号, 和当前时间生成一个UUID
uuid3(namespace, name)
Generate a UUID from the MD5 hash of a namespace UUID and a name.
If 'node' is not given, getnode() is used to obtain the hardware
address. If 'clock_seq' is given, it is used as the sequence number;
otherwise a random 14-bit sequence number is chosen.
uuid4()
Generate a random UUID.
uuid5()
Generate a UUID from the SHA-1 hash of a namespace UUID and a name.
数据
NAMESPACE_DNS = UUID('6ba7b810-9dad-11d1-80b4-00c04fd430c8')
NAMESPACE_OID = UUID('6ba7b812-9dad-11d1-80b4-00c04fd430c8')
NAMESPACE_URL = UUID('6ba7b811-9dad-11d1-80b4-00c04fd430c8')
NAMESPACE_X500 = UUID('6ba7b814-9dad-11d1-80b4-00c04fd430c8')
RESERVED_FUTURE = 'reserved for future definition'
RESERVED_MICROSOFT = 'reserved for Microsoft compatibility'
RESERVED_NCS = 'reserved for NCS compatibility'
RFC_4122 = 'specified in RFC 4122'
__author__ = 'Ka-Ping Yee <ping@zesty.ca>'
lib = None
libname = 'uuid'