python uuid库的使用

2023-01-31 01:01:35 python uuid

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'


相关文章