前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python uuid库的使用

python uuid库的使用

作者头像
py3study
发布2020-01-13 11:36:20
3.6K0
发布2020-01-13 11:36:20
举报
文章被收录于专栏:python3python3

python 的uuid库是用来生成一串唯一表示的包,uuid是一个 32 位的16进制数,用来设置唯一的辨识信息,具体uuid功能查看维基百科

uuid库的使用方法(uuid使用文档翻译):

代码语言:javascript
复制
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'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档