DEV Community

Nonsoo
Nonsoo

Posted on

Let's Create a UUID generator

How can we create a UUID generator?

Introduction

Let's suppose you are given the tedious task of making a unique identifier for each student in a class of 500 and for security purposes you are told these IDs have to be alphanumeric. Your thinking to yourself, how did I end up having the task assigned to me? Relentlessly shrugging your shoulders, you remember that you're a programmer and that you could just code your way out of this problem! Today we'll be walking through how to make a UUID generator whereby when you run the program you get a text file on your desktop that is populated with the number of UUIDs you asked for.

Getting Started

You might be thinking, now I have to figure out how to make a random alphanumeric character generator that I can use in the rest of my program. You could go down that route, writing a function that is responsible for generating this random alphanumeric character of n length and all that jazz. However, programmers are also lazy and there's no need to re-write this function that is publicly available for you to use which generates these IDs. We are going to be doing this using python but this can be done in other languages as well like JavaScript, PHP, Java, etc.

Create a unique ID

There's a UUID module in python that we can import and it gives us access to versions 1,3,4, and 5 of the UUID generator. We can then specify the version of the UUID generator we want to use and store it in a variable.

import uuid

myUUID = uuid.uuid4()
Enter fullscreen mode Exit fullscreen mode

This returns an instance of pythons UUID class so we need to convert it to a string to view the generated UUID. Below if a code block converts the class instance to a string and prints out the result.

import uuid

myUUID = uuid.uuid4()

print("The generated uuid is: " + str(myUUID))
Enter fullscreen mode Exit fullscreen mode

Creating our program

We want a function whereby we can pass in a number and generate a list of unique IDs where the length of the list is equal to the number that was passed in.

Below is a block of code that defines the function.

import uuid

def UUIDgen(num):
    """
        A function that takes in a number and returns a list of UUIDs
        where the length of the list is equal to the function that
        is passed in.
    """
    pass

if __name__=="__main__":
    pass

Enter fullscreen mode Exit fullscreen mode

We first need to create the list that is going to hold the UUIDs and then we can set up a loop that adds the newly generated UUID to the list. This loop would continue until it gets to the number that was passed in. Below is the block of code that shows this:

import uuid

def UUIDgen(num):
    """
        A function that takes in a number and returns a list of UUIDs
        where the length of the list is equal to the function that
        is passed in.
    """
    lstUUID = []
    count = 0

    while count < num:
        lstUUID.append(str(uuid.uuid4()))
        count = count + 1
    return lstUUID

if __name__=="__main__":
    pass

Enter fullscreen mode Exit fullscreen mode

Don't forget that the uuid4 returns a class instance and thus we need to convert it to a string before appending it to the list

For the program, we can ask the user how many UUIDs they want to be generated and store their response in a variable. We can do this by writing lenLst = input("How many UUIDs do you want to be generated?: ")

We can then use our function to generate that list of UUID.

Remember that input() stores responses in a string so before we use it we need to convert the lenLst variable to an int

import uuid

def UUIDgen(num):
    """
        A function that takes in a number and returns a list of UUIDs
        where the length of the list is equal to the function that
        is passed in.
    """
    lstUUID = []
    count = 0

    while count < num:
        lstUUID.append(str(uuid.uuid4()))
        count = count + 1
    return lstUUID

if __name__=="__main__":
    lenLst = input("How many UUIDs do you want generated?: ")

    genUUIDLst = UUIDgen(int(lenLst))

Enter fullscreen mode Exit fullscreen mode

genUUIDLst now holds a list of UUIDs where the list is of length n. We now have to write the items of this list to a text file and we're done.

We can open a new file in write mode by using the open() function and then loop throughout genUUIDLst and write each item to the file. We do this doing the following:

if __name__=="__main__":
    lenLst = input("How many UUIDs do you want generated?: ")

    genUUIDLst = UUIDgen(int(lenLst))

    newFile = open("/Desktop/UUID_File.txt","w")
    for item in genUUIDLst:
        newFile.write("{} \n".format(item))
    newFile.close()

Enter fullscreen mode Exit fullscreen mode

After writing all the information to the file, we need to close the file and then we can print a state to know when this has finished executing.

The final code block should look something like this:

import uuid

def UUIDgen(num):
    """
        A function that takes in a number and returns a list of UUIDs
        where the length of the list is equal to the function that
        is passed in.
    """
    lstUUID = []
    count = 0

    while count < num:
        lstUUID.append(str(uuid.uuid4()))
        count = count + 1
    return lstUUID

if __name__=="__main__":
    lenLst = input("How many UUIDs do you want generated?: ")

    genUUIDLst = UUIDgen(int(lenLst))

    newFile = open("/Desktop/UUID_File.txt","w")
    for item in genUUIDLst:
        newFile.write("{} \n".format(item))
    newFile.close()
    print("Done!")
Enter fullscreen mode Exit fullscreen mode

We are DONE!

Conclusion

Now that this is complete, we have a way to generate a list of UUIDs and save them to a file on our desktop! Question for you, What else can you do with this UUID generator?

Check out the Youtube Channel for tips/tricks and tutorials on programming!

Top comments (0)