uuid
The Python uuid
module provides a way to generate universally unique identifiers (UUIDs), which are 128-bit values used to uniquely identify information in computer systems. UUIDs are often used when a unique identifier is required, such as database keys or session IDs.
Here’s a quick example:
>>> import uuid
>>> uuid.uuid4()
UUID('12345678-1234-5678-1234-567812345678')
Key Features
- Generates UUIDs using random, time-based, and name-based methods
- Supports UUID versions 1, 3, 4, and 5
- Parses and validates UUID strings and objects
- Converts UUIDs to and from string representations
- Integrates seamlessly with Python types and serialization
- Guarantees uniqueness across space and time
Frequently Used Classes and Functions
Object | Type | Description |
---|---|---|
uuid.UUID |
Class | Represents a UUID object |
uuid.uuid1() |
Function | Generates a UUID based on the host ID and current time |
uuid.uuid3() |
Function | Generates a name-based UUID using MD5 hashing |
uuid.uuid4() |
Function | Generates a random UUID |
uuid.uuid5() |
Function | Generates a name-based UUID using SHA-1 hashing |
uuid.getnode() |
Function | Returns the hardware address as a 48-bit integer |
uuid.NAMESPACE_DNS |
Class | Represents the DNS namespace constant for name-based UUIDs |
Examples
Generating a name-based UUID using MD5 hashing:
>>> import uuid
>>> uuid.uuid3(uuid.NAMESPACE_DNS, "python.org")
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
Common Use Cases
- Generating unique identifiers for database entries
- Creating unique session IDs for web applications
- Ensuring uniqueness of identifiers in distributed systems
- Tagging files, resources, or objects with unique IDs
- Safely merging data from multiple sources
- Implementing resource identifiers in network protocols
- Supporting object tracking in logging or auditing systems
Real-World Example
Here’s an example of using the uuid
module to generate a unique filename for an uploaded file in a web application. This approach helps prevent filename collisions:
>>> import uuid
>>> def generate_unique_filename(filename):
... file_extension = filename.split(".")[-1]
... unique_id = uuid.uuid4()
... return f"{unique_id}.{file_extension}"
...
>>> generate_unique_filename("document.txt")
'3f6d2f0e-19a4-4e5b-8cb3-3c9b7f2c9db7.txt'
In this example, the uuid
module generates a UUID to ensure that each uploaded file has a unique name, preventing any potential file overwrites.
Related Resources
Tutorial
Serialize Your Data With Python
In this in-depth tutorial, you'll explore the world of data serialization in Python. You'll compare and use different data serialization formats, serialize Python objects and executable code, and handle HTTP message payloads.
For additional information on related topics, take a look at the following resources:
- Generating Random Data in Python (Guide) (Tutorial)
- Generating Random Data in Python (Course)
By Leodanis Pozo Ramos • Updated July 29, 2025