es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprobando la carpeta y, si no existe, crearla.

Soy bastante nuevo en Python, así que necesito ayuda. Me gustaría crear un código que verifique si se ha creado una carpeta con un nombre especificado. Si no existe, la crea, y si existe, va a ella y verifica si hay otra carpeta con un nombre especificado dentro de ella. Si no existe, la crea. En mi código no sé cómo ir a una carpeta que ya existe o acaba de ser creada y repetir la sentencia if.

import os


MYDIR = "test"
CHECK_FOLDER = os.path.isdir(MYDIR)


if not CHECK_FOLDER:
    os.makedirs(MYDIR)
    print("se ha creado la carpeta:", MYDIR)

else:
    print("la carpeta", MYDIR, "ya existe.")
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para verificar si existe un subdirectorio dentro del directorio creado, puedes usar la función os.path.join para crear la ruta al subdirectorio y luego verificar si existe usando os.path.isdir. Aquí tienes un ejemplo de código actualizado que crea el subdirectorio si no existe y navega hacia él:

    import os
    
    MYDIR = "test"
    SUBDIR = "subtest"
    CHECK_FOLDER = os.path.isdir(MYDIR)
    
    if not CHECK_FOLDER:
        os.makedirs(MYDIR)
        print("Se creó la carpeta:", MYDIR)
    
    else:
        print("La carpeta", MYDIR, "ya existe.")
    
    # navegar hacia el directorio principal
    os.chdir(MYDIR)
    
    # verificar si el subdirectorio existe
    CHECK_SUBFOLDER = os.path.isdir(SUBDIR)
    
    if not CHECK_SUBFOLDER:
        os.makedirs(SUBDIR)
        print("Se creó el subdirectorio:", SUBDIR)
    
    else:
        print("El subdirectorio", SUBDIR, "ya existe.")
    

    En este ejemplo, se utiliza la función os.chdir para cambiar el directorio de trabajo actual a MYDIR, lo que permite verificar y crear SUBDIR dentro de él. Si SUBDIR no existe, se crea utilizando os.makedirs, y si existe, se imprime un mensaje indicando que ya existe.

Comments are closed.