Skip to content

Instantly share code, notes, and snippets.

@joelibaceta
Last active February 19, 2023 02:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joelibaceta/fa54055ae0d6f6f100cd5ff6e221e966 to your computer and use it in GitHub Desktop.
Save joelibaceta/fa54055ae0d6f6f100cd5ff6e221e966 to your computer and use it in GitHub Desktop.
Ejemplo de proyecto renombrador de archivos

Renombrador

Se construyo un script en Python que nos permitira renombrar archivos de imagenes de mascotas para transformar nombres variados de archivos descargados en una lista ordenada y si el usuario lo elige tambien se hara un corte de las imagenes para que puedan ser usadas como un banner.

Para poder probar este script debemos crear una carpeta fotos en la misma ubicacion que el script

import os # Paquete os de la biblioteca estandar de Python
from PIL import Image # Biblioteca Pillow
directorio = "./fotos" # Carpeta en la que se encuentran las fotos
# Preguntar al usuario si desea que las imagenes sean cortadas
cortar = input("Desea cortar y convertir a PNG el archivo? SI/NO: ")
"""
Iterar los archivos de la carpeta que contiene las fotografias
os.listdir() -> Este metodo retorna una lista de archivos en una carpeta determinada
"""
for filename in os.listdir(directorio):
# Al iterar los archivos de la carpeta en cada repeticion del bucle
# el nombre de cada archivo se guardara en la variable filename
# Se divide el nombre del archivo en dos partes mediante el metodo split
nombre, extension = filename.split(".")
# Se obtiene la fecha de creación del archivo
timestamp = os.path.getctime(f"./fotos/{filename}")
# Se guarda la ruta completa del archivo en la variable full_name
full_name = f"./fotos/{filename}"
# Si el nombre del archivo contiene la palabra "cropped" o "Mascota"
# no se hace nada pues estos archivos ya han sido procesados anteriormente.
if "cropped" in filename or filename.startswith("Mascota"):
pass # no hacer nada
else:
# Se guarda en la variable new_name el nuevo nombre del archivo para ser renombrado
new_name = f"./fotos/Mascota_{str(timestamp)}.{extension}"
# Se renombra el archivo
os.rename(full_name, new_name)
# Si el usuario ingreso la palabra "SI" a la pregunta si desea cortar la imagen
if cortar == "SI":
foto = Image.open(full_name) # Abrir el archivo de imagen
# Cortar la imagen desde el origen 0, 0
# se corta una seccion de 600x300 pixeles
# y se guarda la nueva imagen cortada en la variable foto_cortada
foto_cortada = foto.crop((0,0, 600, 300))
# Se guarda la foto_cortada como un archivo png con el sufijo "cropped"
foto_cortada.save(f"./fotos/{nombre}_cropped.png")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment