python uuid库的使用

发布时间:2019-07-23 09:45:28编辑:auto阅读(1382)

    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'
    


关键字