Search code examples
pythondirectory

Increment directory name if it already exists


If I have a directory that already exists, called Test. How can I increment the directory name by 1, if I try creating a directory with the same name?


Solution

  • You may use either the Recursive or the Loop code.

    Notes:

    • Recursive code may result in an error (maximum recursion depth exceeded)
    • Loop code, works well with no errors

    Code | Recursive

    import os
    
    def generated_directory_name(name, x=0):
        dir_name = (name + (' ' + str(x) if x is not 0 else '')).strip()
        if not os.path.exists(dir_name):
            os.mkdir(dir_name)
            return dir_name
        else:
            return generate_directory_name(name, x + 1)
    
    def create_directory():
        user_input = input("Enter name to create directory: ")
        generate_directory_name(user_input)
    
    def main():
        cwd = os.getcwd()
        create_directory()
    
    main()
    

    Code | Loop

    import os
    
    def generate_directory_name(name, x=0):
        while True:
            dir_name = (name + (' ' + str(x) if x is not 0 else '')).strip()
            if not os.path.exists(dir_name):
                os.mkdir(dir_name)
                return dir_name
            else:
                x = x + 1
    
    def create_directory():
        user_input = input("Enter name to create directory: ")
        generate_directory_name(user_input)
    
    def main():
        cwd = os.getcwd()
        create_directory()
    
    main()
    

    Output

    Code Output