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
aprefijo_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 paraejemplo.txt
yarchivo.txt
el prefijo a añadir sería1_archivo.txt
y2_ejemplo.txt
. Laa
va antes que lae
alfabéticamente.