Correcciones documentales. Creado el proyecto envio-reportes-correo
This commit is contained in:
30
renombrado-sercop/README.md
Normal file
30
renombrado-sercop/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Utilidades de renombrado
|
||||
|
||||
Renombrado de archivos pdf segun las reglas del SERCOP.
|
||||
|
||||
El Script [renombrar-archivo.py](renombrar-archivo.py) solo funciona con un archivo a la vez.
|
||||
|
||||
El Script [renombrar-archivos-carpeta.py](renombrar-archivos-carpeta.py) trabaja sobre todos los archivos PDF de una carpeta y crea una nueva con el prefijo sercopready_ en el mismo directorio que contiene a la carpeta de origen.
|
||||
|
||||
# Reglas
|
||||
|
||||
- Reemplazar espacios por guiones bajos
|
||||
- Reemplazar eñes por 'enes'
|
||||
- Eliminar caracteres especiales dejando solo letras, números y guiones bajos
|
||||
- Solo archivos PDF
|
||||
|
||||
# Modo de uso
|
||||
|
||||
Super sencillo. Se asume que tiene python 3.x con tkinter para los dialogos.
|
||||
|
||||
# Detalles
|
||||
|
||||
|||
|
||||
|--|--|
|
||||
|**Autor**|drk0027|
|
||||
|**Fecha creacion**|08-01-2025|
|
||||
|**Tags**|renombrado, tkinter|
|
||||
|
||||
# Observaciones
|
||||
|
||||
¿Funciona? Si. Esta perfecto para obtener un archivo o carpeta de archivos listos para ser subidos al SERCOP segun sus reglas.
|
||||
41
renombrado-sercop/renombrar-archivo.py
Normal file
41
renombrado-sercop/renombrar-archivo.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import os
|
||||
import re
|
||||
from tkinter import Tk, filedialog, messagebox
|
||||
|
||||
def limpiar_nombre_archivo(nombre):
|
||||
# Cambiar espacios en blanco por guiones bajos
|
||||
nombre = nombre.replace(' ', '_')
|
||||
# Cambiar eñes por enes
|
||||
nombre = nombre.replace('ñ', 'n')
|
||||
# Eliminar caracteres especiales (dejando solo letras, números y guiones bajos)
|
||||
nombre = re.sub(r'[^a-zA-Z0-9_]', '', nombre)
|
||||
return nombre
|
||||
|
||||
def seleccionar_archivo():
|
||||
root = Tk()
|
||||
root.withdraw() # Ocultar la ventana principal de Tkinter
|
||||
archivo = filedialog.askopenfilename(title="Seleccionar archivo")
|
||||
|
||||
if archivo:
|
||||
# Obtener el directorio y el nombre del archivo
|
||||
directorio = os.path.dirname(archivo)
|
||||
nombre_archivo = os.path.basename(archivo)
|
||||
|
||||
# Limpiar el nombre del archivo
|
||||
nombre_limpio = limpiar_nombre_archivo(nombre_archivo)
|
||||
|
||||
# Crear nuevo nombre de archivo con la misma extensión
|
||||
nombre_nuevo = f"{nombre_limpio}{os.path.splitext(nombre_archivo)[1]}"
|
||||
ruta_nueva = os.path.join(directorio, nombre_nuevo)
|
||||
|
||||
# Crear la copia del archivo
|
||||
with open(archivo, 'rb') as f_original:
|
||||
with open(ruta_nueva, 'wb') as f_copia:
|
||||
f_copia.write(f_original.read())
|
||||
|
||||
messagebox.showinfo("Éxito", f"Copia creada: {ruta_nueva}")
|
||||
else:
|
||||
messagebox.showwarning("Advertencia", "No se seleccionó ningún archivo.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
seleccionar_archivo()
|
||||
47
renombrado-sercop/renombrar-archivos-carpeta.py
Normal file
47
renombrado-sercop/renombrar-archivos-carpeta.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
from tkinter import Tk, filedialog
|
||||
|
||||
def limpiar_nombre(nombre):
|
||||
# Reemplazar espacios por guiones bajos
|
||||
nombre = nombre.replace(' ', '_')
|
||||
# Reemplazar eñes por 'enes'
|
||||
nombre = nombre.replace('ñ', 'en')
|
||||
nombre = nombre.replace('Ñ', 'En')
|
||||
# Eliminar caracteres especiales dejando solo letras, números y guiones bajos
|
||||
nombre = re.sub(r'[^a-zA-Z0-9_\.]', '', nombre)
|
||||
return nombre
|
||||
|
||||
def main():
|
||||
# Crear ventana de Tkinter y esconderla
|
||||
root = Tk()
|
||||
root.withdraw()
|
||||
|
||||
# Seleccionar carpeta
|
||||
carpeta_origen = filedialog.askdirectory(title="Selecciona la carpeta con los archivos PDF")
|
||||
if not carpeta_origen:
|
||||
print("No se seleccionó ninguna carpeta.")
|
||||
return
|
||||
|
||||
# Crear carpeta destino
|
||||
carpeta_destino = os.path.join(os.path.dirname(carpeta_origen), f"sercopready_{os.path.basename(carpeta_origen)}")
|
||||
os.makedirs(carpeta_destino, exist_ok=True)
|
||||
|
||||
# Procesar archivos PDF
|
||||
for filename in os.listdir(carpeta_origen):
|
||||
if filename.lower().endswith('.pdf'):
|
||||
# Limpiar nombre
|
||||
nuevo_nombre = limpiar_nombre(filename)
|
||||
# Mantener extensión .pdf
|
||||
nuevo_nombre = nuevo_nombre if nuevo_nombre.lower().endswith('.pdf') else nuevo_nombre + '.pdf'
|
||||
# Rutas completas
|
||||
ruta_origen = os.path.join(carpeta_origen, filename)
|
||||
ruta_destino = os.path.join(carpeta_destino, nuevo_nombre)
|
||||
# Copiar y renombrar archivo
|
||||
shutil.copy2(ruta_origen, ruta_destino)
|
||||
|
||||
print(f"Archivos procesados y copiados en: {carpeta_destino}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user