DesarrolloProtección de pagoDetalles
- Los cambios dentro del paquete son gratuitos.
- Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.
El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Ejemplo de resultado
Unir los archivos de ventas mensuales de 9 tiendas en un único informe de Excel
Cómo se ejecuta
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Carpeta: sales/2026-10, 9 archivos encontrados
2026-11-02 09:14:03 INFO shop-01.csv: 1.284 filas
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 filas
2026-11-02 09:14:04 WARN shop-07.csv: 3 filas sin precio omitidas (líneas 88, 412, 913)
2026-11-02 09:14:05 INFO Listo: 10.412 filas -> report-2026-10.xlsx (hojas “Ventas” y “Totales”)
Configuración, no código
Los nombres de columna de cada tienda están en settings.ini, así que una tienda nueva o una columna renombrada es una línea ahí:
[columns]
date = Fecha, Fecha de venta, Día
product = Producto, Artículo, Nombre
quantity = Cant., Cantidad, Uds.
price = Precio, Precio unitario
Una parte del código
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Lee el archivo de una tienda y le da los nombres de columna del informe."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: no hay columna para '{name}' (se buscó {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Archivos: un archivo ZIP con merge_sales.py (310 líneas), settings.ini, requirements.txt y un README sobre cómo instalar Python, ejecutar el script y qué significa cada mensaje del registro. El cliente lo ejecuta en su propio ordenador.
Cliente: una pequeña cadena de 9 papelerías; cada tienda envía sus ventas del mes en un archivo CSV o Excel, con nombres de columna ligeramente distintos. Tarea: un único script que lea todos los archivos de una carpeta, dé a las columnas un mismo formato y genere un solo informe de Excel con todas las ventas y una hoja de totales por tienda.
El cliente y todos los datos son ficticios.
Acerca de este servicio
Contratos escaneados que llegaron como un archivo por página, un extracto de 300 páginas que hay que enviar cliente por cliente, un conjunto de documentos que debe ir en un solo PDF: este script de Python hace esas tareas con PDF en segundos en lugar de ir clic a clic en un editor. Une archivos en el orden que fije (por nombre, por fecha o desde una lista), divide un PDF en páginas sueltas, rangos fijos o partes que empiezan en cada marcador, y en Premium puede cortar donde una página contiene una palabra que usted indique, como N.º de factura. Las páginas mantienen su calidad porque se copian, no se vuelven a imprimir. Envíenos la tarea y uno o dos archivos de muestra sin nada privado. El script lo ejecuta usted en su ordenador. No edita texto ni lee escaneos.
Qué incluye
- Qué recibeUn archivo ZIP con el script de Python, un README con instrucciones paso a paso y, desde Estándar, un archivo de configuración con el orden, los rangos y los nombres; el código también se muestra en la página del pedido.
- Unir en su ordenPor nombre, fecha o una lista que usted dé
- Dividir a su maneraPáginas sueltas, rangos o marcadores
- Sin pérdida de calidadLas páginas se copian tal cual
- Nombres de archivo clarosNúmeros, rangos de páginas o nombres de su lista
- Código legibleCon comentarios, fácil cambiar una regla más adelante
Cómo funciona
- 1TareaUsted describe la tarea y envía uno o dos PDF de muestra
- 2CódigoEscribimos el script y la guía para ejecutarlo
- 3PruébeloLo ejecuta con copias de sus archivos y revisa las páginas
- 4CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error
Qué necesitamos de usted
Qué necesita: qué archivos unir y en qué orden, o cómo dividir (cada página, cada N páginas, por rangos, por marcadores o por una palabra de la página), y cómo nombrar los resultados. Uno o dos PDF de muestra sin nada privado, o con la misma estructura y contenido inventado; si la división depende de una palabra, una página que la muestre. Cuántos archivos y páginas hay aproximadamente, y su sistema: Windows, macOS o Linux.
Le preguntaremos:
- ¿Unir, dividir o una cosa tras otra?
- ¿Cómo se sabe dónde empieza cada parte?
- ¿Cómo deben llamarse los archivos?
- ¿Dónde se ejecutará?
Comparar paquetes
| Paquetes | BásicoUnir o dividir16 US$ | EstándarPDF con configuración33 US$ | PremiumHerramienta PDF67 US$ |
|---|---|---|---|
| Plazo | 1 día | 2 días | 3 días |
| Cambios | 1 | 2 | 3 |
| Código | hasta 150 líneas | hasta 400 líneas | hasta 1.000 líneas |
| Archivos de código | 1 | hasta 3 | hasta 8 |
| Archivo de configuración | No | Sí | Sí |
| Mensajes de error claros y registro | No | Sí | Sí |
| Opciones de ejecución y guía para ejecutarlo de forma programada | No | No | Sí |
| Guía de instalación y uso (README) | Sí | Sí | Sí |
| Lenguaje | Python | Python | Python |
| Hacer pedido Básico | Hacer pedido Estándar | Hacer pedido Premium |
Protección de pago
Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.
- Precio fijoEl precio del paquete no cambia después del pago.
- El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
- Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
- Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
- Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
- Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Preguntas y respuestas
¿Puede dividir PDF escaneados por una palabra?
No: un escaneo es una imagen de una página, sin texto que buscar. Dividir escaneos por números de página o rangos funciona bien. Para dividir por una palabra hace falta un PDF con texto real, como uno guardado desde un programa.
¿Y los PDF protegidos con contraseña?
Si conoce la contraseña, el README explica cómo dársela al script al ejecutarlo; nunca se escribe en el código. Los archivos de los que no tenga contraseña se omiten y aparecen en el registro.
¿Puede también comprimir los PDF?
Una compresión ligera de la estructura del archivo, sí. Reducir mucho los escaneos implica recomprimir las imágenes que contienen, lo que cambia su calidad; pregúntelo en el brief y le diremos si cabe en su paquete.
¿Procesarán ustedes mis documentos?
No. Usted ejecuta el script en su ordenador, así que los contratos y extractos nunca salen de él. Envíenos solo muestras sin nada privado.
¿No encontró su respuesta?


