Replace Part of a File Name in Python

PHOTO EMBED

Tue May 09 2023 19:31:25 GMT+0000 (Coordinated Universal Time)

Saved by @vjg #python

import os
import tkinter as tk
from tkinter import filedialog, messagebox

def seleccionar_carpeta():
    carpeta = filedialog.askdirectory()
    if carpeta:
        entrada_carpeta.delete(0, tk.END)
        entrada_carpeta.insert(0, carpeta)

def renombrar_archivos():
    carpeta = entrada_carpeta.get()
    texto_original = entrada_original.get()
    texto_nuevo = entrada_nuevo.get()

    if not carpeta or not texto_original:
        messagebox.showwarning("Campos incompletos", "Por favor, selecciona una carpeta y completa el texto a reemplazar.")
        return

    archivos_renombrados = 0
    for nombre_archivo in os.listdir(carpeta):
        if texto_original in nombre_archivo:
            nuevo_nombre = nombre_archivo.replace(texto_original, texto_nuevo)
            ruta_vieja = os.path.join(carpeta, nombre_archivo)
            ruta_nueva = os.path.join(carpeta, nuevo_nombre)
            os.rename(ruta_vieja, ruta_nueva)
            archivos_renombrados += 1

    messagebox.showinfo("Proceso finalizado", f"Se renombraron {archivos_renombrados} archivos.")

def añadir_texto_al_final():
    carpeta = entrada_carpeta.get()
    texto_final = entrada_final.get()

    if not carpeta or not texto_final:
        messagebox.showwarning("Campos incompletos", "Por favor, completa el campo de texto a añadir.")
        return

    archivos_modificados = 0
    for nombre_archivo in os.listdir(carpeta):
        ruta_vieja = os.path.join(carpeta, nombre_archivo)
        nombre_base, extension = os.path.splitext(nombre_archivo)
        nuevo_nombre = f"{nombre_base}{texto_final}{extension}"
        ruta_nueva = os.path.join(carpeta, nuevo_nombre)
        os.rename(ruta_vieja, ruta_nueva)
        archivos_modificados += 1

    messagebox.showinfo("Proceso finalizado", f"Se añadieron textos a {archivos_modificados} archivos.")

# Interfaz gráfica
root = tk.Tk()
root.title("Renombrar o añadir texto a archivos")

tk.Label(root, text="Carpeta:").grid(row=0, column=0, sticky="e")
entrada_carpeta = tk.Entry(root, width=50)
entrada_carpeta.grid(row=0, column=1)
tk.Button(root, text="Seleccionar", command=seleccionar_carpeta).grid(row=0, column=2)

tk.Label(root, text="Texto a reemplazar:").grid(row=1, column=0, sticky="e")
entrada_original = tk.Entry(root)
entrada_original.grid(row=1, column=1)

tk.Label(root, text="Texto nuevo:").grid(row=2, column=0, sticky="e")
entrada_nuevo = tk.Entry(root)
entrada_nuevo.grid(row=2, column=1)

tk.Label(root, text="Texto a añadir al final:").grid(row=3, column=0, sticky="e")
entrada_final = tk.Entry(root)
entrada_final.grid(row=3, column=1)

tk.Button(root, text="Renombrar", command=renombrar_archivos).grid(row=4, column=1, pady=10, sticky="w")
tk.Button(root, text="Añadir texto al final", command=añadir_texto_al_final).grid(row=4, column=1, pady=10, sticky="e")

root.mainloop()
content_copyCOPY