Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Creado el Vie 07 Mar 2025 20:14:58
- @autor: JP
- Funcionalidades del script:
- Eliminar espacios:
- Reemplaza espacios en blanco por guiones bajos ( _ ).
- Convertir a minúsculas:
- Cambia el nombre de los archivos a minúsculas.
- Agregar prefijo/sufijo:
- Permite al usuario agregar un texto al inicio o al final del nombre
- del archivo.
- Reemplazar caracteres especiales:
- Cambia caracteres especiales (como á, é, ñ) por sus equivalentes
- sin acentos.
- Ejemplo de uso:
- Entrada:
- Ingrese la ruta de la carpeta que desea renombrar:
- C:/Users/TuUsuario/Documents/Pruebas
- Seleccione una operación:
- 1. Eliminar espacios en blanco
- 2. Convertir a minúsculas
- 3. Agregar prefijo/sufijo
- 4. Reemplazar caracteres especiales
- Ingrese el número de la operación: 1
- Salida:
- Resumen de cambios:
- Renombrado: mi archivo.txt
- -> mi_archivo.txt
- Renombrado: OTRO archivo.pdf
- -> otro_archivo.pdf
- Renombrado: Basófilos.png
- -> basofilos.png
- Renombrado: Días Trabajados.py
- -> dias_trabajados.py
- Renombrado: Basófilos Media.csv
- -> basofilos_media.csv
- Renombrado: Basófilos Totales.png
- -> ej-basofilos_totales-cap_1.png
- prefijo: "ej-" | sufijo: "-cap_1"
- Total de archivos renombrados: 6
- SUGERENCIA: Cree una carpeta "C:/Users/TuUsuario/Documents/Pruebas"
- Haga las pruebas de normalización.
- Cuando tenga claro que quiere obtener utilice el `script`
- ¡¡Hace renombrado masivo. Use con precaución!!
- """
- import os
- import unicodedata
- def eliminar_espacios(nombre):
- """Reemplaza espacios en blanco por guiones bajos."""
- return nombre.replace(" ", "_")
- def convertir_a_minusculas(nombre):
- """Convierte el nombre del archivo a minúsculas."""
- return nombre.lower()
- def agregar_prefijo_sufijo(nombre, prefijo="", sufijo=""):
- """Agrega un prefijo y/o sufijo al nombre del archivo."""
- nombre_base, extension = os.path.splitext(nombre)
- return f"{prefijo}{nombre_base}{sufijo}{extension}"
- def reemplazar_caracteres_especiales(nombre):
- """Reemplaza caracteres especiales por sus equivalentes sin acentos."""
- nombre_normalizado = unicodedata.normalize("NFKD", nombre)
- return "".join(
- c for c in nombre_normalizado if not unicodedata.combining(c)
- )
- def renombrar_archivos(carpeta, operacion, **kwargs):
- """Renombra archivos en una carpeta según la operación seleccionada."""
- # Obtener la lista de archivos en la carpeta
- archivos = os.listdir(carpeta)
- cambios = []
- # Recorrer cada archivo en la carpeta
- for archivo in archivos:
- ruta_completa = os.path.join(carpeta, archivo)
- # Verificar si es un archivo (no una carpeta)
- if os.path.isfile(ruta_completa):
- # Aplicar la operación seleccionada
- if operacion == "eliminar_espacios":
- nuevo_nombre = eliminar_espacios(archivo)
- elif operacion == "convertir_a_minusculas":
- nuevo_nombre = convertir_a_minusculas(archivo)
- elif operacion == "agregar_prefijo_sufijo":
- nuevo_nombre = agregar_prefijo_sufijo(
- archivo,
- kwargs.get("prefijo", ""),
- kwargs.get("sufijo", ""),
- )
- elif operacion == "reemplazar_caracteres_especiales":
- nuevo_nombre = reemplazar_caracteres_especiales(archivo)
- else:
- print("Operación no válida.")
- return
- # Renombrar el archivo si el nombre cambió
- if nuevo_nombre != archivo:
- nueva_ruta_completa = os.path.join(carpeta, nuevo_nombre)
- os.rename(ruta_completa, nueva_ruta_completa)
- cambios.append((archivo, nuevo_nombre))
- # Mostrar un resumen de los cambios realizados
- if cambios:
- print("/nResumen de cambios:")
- for viejo_nombre, nuevo_nombre in cambios:
- print(f"Renombrado: {viejo_nombre} -> {nuevo_nombre}")
- print(f"/nTotal de archivos renombrados: {len(cambios)}")
- else:
- print("/nNo se realizaron cambios.")
- def main():
- """Pide ruta y opción de normalización del nombre de archivo."""
- # Preguntar al usuario la carpeta a analizar
- carpeta = input(
- "Ingrese la ruta de la carpeta que desea renombrar: "
- ).strip()
- # Verificar si la carpeta existe
- if not os.path.isdir(carpeta):
- print("La carpeta no existe. Por favor, verifique la ruta.")
- return
- # Preguntar al usuario qué operación desea realizar
- print("/nSeleccione una operación:")
- print("1. Eliminar espacios en blanco")
- print("2. Convertir a minúsculas")
- print("3. Agregar prefijo/sufijo")
- print("4. Reemplazar caracteres especiales")
- opcion = input("Ingrese el número de la operación: ").strip()
- # Ejecutar la operación seleccionada
- if opcion == "1":
- renombrar_archivos(carpeta, "eliminar_espacios")
- elif opcion == "2":
- renombrar_archivos(carpeta, "convertir_a_minusculas")
- elif opcion == "3":
- prefijo = input(
- "Ingrese el prefijo (o deje vacío si no desea agregar uno): "
- ).strip()
- sufijo = input(
- "Ingrese el sufijo (o deje vacío si no desea agregar uno): "
- ).strip()
- renombrar_archivos(
- carpeta, "agregar_prefijo_sufijo", prefijo=prefijo, sufijo=sufijo
- )
- elif opcion == "4":
- renombrar_archivos(carpeta, "reemplazar_caracteres_especiales")
- else:
- print("Opción no válida.")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment