3 votes

Incrémente le nom du répertoire s'il existe déjà

Si j'ai un répertoire qui existe déjà, appelé Test. Comment puis-je incrémenter le nom du répertoire par 1, si j'essaie de créer un répertoire avec le même nom ?

2voto

Dean Van Greunen Points 775

Vous pouvez utiliser soit le Récursif ou le Boucle code.

Notas:

  • Le code récursif peut entraîner une erreur ( profondeur maximale de récursion dépassée )
  • Code en boucle, fonctionne bien et sans erreur

Code | Récursif

import os

def generateDirectoryName(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 generateDirectoryName(name, x + 1)

def createDirectory():
    user_input = input("Enter name to create directory: ")
    generateDirectoryName(user_input)

def main():
    cwd = os.getcwd()
    createDirectory()

main()

Code | Boucle

import os

def generateDirectoryName(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 createDirectory():
    user_input = input("Enter name to create directory: ")
    generateDirectoryName(user_input)

def main():
    cwd = os.getcwd()
    createDirectory()

main()

Sortie

Code Output

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X