Search code examples
pythonuuidguiduniqueidentifier

How to create a GUID/UUID in Python


How do I create a GUID/UUID in Python that is platform independent? I hear there is a method using ActivePython on Windows but it's Windows only because it uses COM. Is there a method using plain Python?


Solution

  • The uuid module provides immutable UUID objects (the UUID class) and the functions uuid1(), uuid3(), uuid4(), uuid5() for generating version 1, 3, 4, and 5 UUIDs as specified in RFC 4122.

    If all you want is a unique ID, you should probably call uuid1() or uuid4().

    Note that uuid1() may compromise privacy since it creates a UUID containing the computer’s network address.

    uuid4() creates a random UUID.

    UUID versions 6, 7 and 8 - new Universally Unique Identifier (UUID) formats for use in modern applications and as database keys - (draft) rfc - are available from https://pypi.org/project/uuid6/

    Docs:

    Examples (for both Python 2 and 3):

    >>> import uuid
    
    >>> # make a random UUID
    >>> uuid.uuid4()
    UUID('bd65600d-8669-4903-8a14-af88203add38')
    
    >>> # Convert a UUID to a string of hex digits in standard form
    >>> str(uuid.uuid4())
    'f50ec0b7-f960-400d-91f0-c42a6d44e3d0'
    
    >>> # Convert a UUID to a 32-character hexadecimal string
    >>> uuid.uuid4().hex
    '9fe2c4e93f654fdbb24c02b15259716c'