avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python中UUID介绍和使用
文章

Python中UUID介绍和使用

Posted 2024-08-1 Updated 2024-07- 31
By RWO.
7~9 min read

UUID(Universally Unique Identifier)是通用唯一识别码,用于标识信息。在Python中,我们可以通过uuid模块生成不同版本的UUID。

什么是UUID

UUID是128位长的标识符,通常用32位的16进制数表示。UUID的主要特点是唯一性,广泛用于数据库索引、文件标识、会话ID等场景。

生成UUID

在Python中,我们可以使用uuid模块来生成UUID。让我们看一下如何生成UUID。

import uuid

# 生成一个UUID
my_uuid = uuid.uuid4()
print(my_uuid)

在这个例子中,使用uuid.uuid4()生成一个随机UUID。

UUID1的使用

UUID1基于时间戳和节点(通常是机器的MAC地址)生成,保证了全局唯一性。

import uuid

uuid1 = uuid.uuid1()
print(uuid1)

在这个例子中,uuid.uuid1()生成一个基于时间和节点的UUID。

UUID3的使用

UUID3基于命名空间和名字生成,使用MD5哈希算法,适用于需要生成稳定的UUID的场景。

import uuid

namespace = uuid.NAMESPACE_DNS
name = 'example.com'
uuid3 = uuid.uuid3(namespace, name)
print(uuid3)

在这个例子中,uuid.uuid3()生成一个基于命名空间和名字的UUID,适用于需要重复生成相同UUID的场景。

UUID4的使用

UUID4完全基于随机数生成,适用于需要高随机性和唯一性的场景。

import uuid

uuid4 = uuid.uuid4()
print(uuid4)

在这个例子中,uuid.uuid4()生成一个随机UUID,适用于大多数常见的唯一标识需求。

UUID5的使用

UUID5与UUID3类似,但使用SHA-1哈希算法。

import uuid

namespace = uuid.NAMESPACE_DNS
name = 'example.com'
uuid5 = uuid.uuid5(namespace, name)
print(uuid5)

在这个例子中,uuid.uuid5()生成一个基于命名空间和名字的UUID,使用SHA-1算法。

UUID4的实际应用

UUID4可以用于标识数据库记录、文件、会话等。在这个例子中,我们将UUID4用作数据库记录的唯一标识符。

import uuid

def create_user_record(username):
    user_id = uuid.uuid4()
    print(f"创建用户记录:用户名={username}, 用户ID={user_id}")

create_user_record("alice")
create_user_record("bob")

在这个例子中,每个用户记录都有一个唯一的UUID作为标识符,确保了全局唯一性。

UUID4与字符串操作

我们可以将UUID4转换为字符串,便于存储和传输。

import uuid

# 生成一个UUID4
my_uuid = uuid.uuid4()
# 转换为字符串
uuid_str = str(my_uuid)
print(uuid_str)

# 从字符串转换回UUID
parsed_uuid = uuid.UUID(uuid_str)
print(parsed_uuid)

在这个例子中,我们将UUID4转换为字符串,并演示了如何从字符串解析回UUID对象。

自定义UUID格式

虽然UUID4本身是随机生成的,但我们可以对其进行一些自定义处理,例如截取或拼接。

import uuid

# 生成一个UUID4
my_uuid = uuid.uuid4()
# 截取前8个字符
short_uuid = str(my_uuid)[:8]
print(short_uuid)

# 拼接自定义前缀
custom_uuid = "user-" + str(my_uuid)
print(custom_uuid)

在这个例子中,我们对生成的UUID进行了截取和拼接,得到自定义格式的UUID。

UUID4的高级用法

我们可以结合UUID4与其他模块实现更复杂的功能,例如生成带有时间戳的唯一标识符。

import uuid
import datetime

def generate_timestamped_uuid():
    timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
    unique_id = str(uuid.uuid4())
    return f"{timestamp}-{unique_id}"

timestamped_uuid = generate_timestamped_uuid()
print(timestamped_uuid)

在这个例子中,我们生成了一个带有时间戳的唯一标识符,结合了当前时间和UUID4的高随机性。

总结

总结一下,UUID在Python中通过uuid模块生成,支持不同版本以满足不同的需求:

  • UUID1:基于时间和节点
  • UUID3:基于命名空间和名字(MD5)
  • UUID4:基于随机数
  • UUID5:基于命名空间和名字(SHA-1)

选择合适的UUID版本,可以更好地满足具体场景的需求。通过将UUID4与字符串操作和其他模块结合,可以实现更高级的功能和自定义格式。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

滚动文本项目(庆祝200粉丝)

NEWER

datetime日期和时间处理

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy