Link Search Menu Expand Document
El Libro De Python (24.95 €) 39.95 €

Trabaja con ficheros con os

En este ejemplo vemos como trabajar con ficheros usando os. Vemos como:

  • 🖌️ Crear ficheros
  • 🔄 Modificar el nombre de ficheros
  • 🗑️ Eliminar ficheros y carpetas

🖌️ Veamos como crear varios ficheros. Los creamos vacíos, pero puedes usar cambiar el write para añadir contenido si lo deseas.

def crea_ficheros(ruta, nombre, cantidad):
    if not os.path.exists(ruta):
        os.makedirs(ruta)
    for i in range(cantidad):
        archivo_ruta = os.path.join(ruta, f"{nombre}_{i}.txt")
        with open(archivo_ruta, 'w') as fichero:
            fichero.write('')
        print(f"Creado: {archivo_ruta}")

Si llamamos a la función, crearemos 10 ficheros en la carpeta ejemplo con nombres desde fichero_1.txt hasta fichero_9.txt.

crea_ficheros("./ejemplo", "fichero", 10)

🔄 Veamos como modificar el nombre de los ficheros. Esta función añade un prefijo al nombre de cada fichero en la ruta. Es decir:

  • Renombra fichero.txt a prefijo_fichero.txt.
def renombra_ficheros(ruta, prefijo):
    for contenido in os.listdir(ruta):
        archivo_ruta = os.path.join(ruta, contenido)

        if os.path.isfile(archivo_ruta):
            nuevo_nombre = prefijo + contenido
            nueva_ruta = os.path.join(ruta, nuevo_nombre)

            os.rename(archivo_ruta, nueva_ruta)
            print(f"{contenido} -> {nuevo_nombre}")

Podemos usar la función así.

renombra_ficheros("./ejemplo", "prefijo_")

🗑️ Veamos como eliminar ficheros y carpetas. Esta función elimina todos los ficheros de ruta.

def elimina_ficheros(ruta):
    for root, dirs, files in os.walk(ruta, topdown=False):
        for file in files:
            os.remove(os.path.join(root, file))
            print(f"Eliminado: {os.path.join(root, file)}")
    os.rmdir(ruta)
    print(f"Archivos y directorio eliminados: {ruta}")

Y la puedes llamar así.

elimina_ficheros("./ejemplo")

✏️ Ejercicios:

  • En vez de añadir prefijo_ a todos los ficheros, modifica la función para añadir un número que indique su orden alfabético. Por ejemplo para ejemplo.txt y archivo.txt el prefijo a añadir sería 1_archivo.txt y 2_ejemplo.txt. La a va antes que la e alfabéticamente.