Script de automatización Python para copiar carpetas y crear archivos

Por Jhonny Martínez E., 6 Septiembre, 2023
python_directory

Veamos cómo podemos usar la programación con Python para trabajar con archivos y carpetas.

Procedimiento:

  1. Entendiendo el problema
  2. Planteamos una alternativa de solución
  3. Implementando la solución
  4. Recomendaciones

1.- El problema

Tenemos dos carpetas que asu vez tienen muchas carpetas con muchos archivos y carpetas.

  • Carpeta 1: Tiene 469 carpetas
  • Carpeta 2: Tiene 976 carpetas

La carpeta 2 tiene todo el contenido de la carpeta 1. Nos piden saber qué carpetas hace falta a la carpeta 1 para tener el mismo contenido de la carpeta 2 y copiar todas esas carpetas en una Carpeta 3 (Carpeta_1 + Carpeta_3 = Carpeta_2).

2.- Planteamos una alternativa de solución

Seguramente podemos encontrar muchas formas de resolver el problema sin embargo en este momento nos interesa usar el lenguaje de programación Python como herramienta de solución.

Qué tal si la solución consiste en ejecutar un comando y la computadora se encarga de hacer todo el trabajo por nosotros, es decir crear archivos con el lsitado de los nombres de las carpetas y crear la Carpeta 3 según las especificaciones planteadas en el problema.

Es más, podriamos usarlo cuantas veces lo deseemos y en diferentes contextos. Sería una herramienta nuestra para resolver problemas de este tipo. Podriamos compartirlo con nuestros amigos, ellos podrían hacer algunas modificaciones de mejoras, publicarlas y asi entre todos vamos creando una herramienta útil de forma colaborativa, comunitaria.

3.- Implementando la solución

Necesitamos:

  • Un archivo python que sea el script ejecutable con toda la lógica necesaria.
  • Las dos carpetas objetivo.
  • Ejecutar el script python.

Creamos una carpeta y dentro el archivo get_addons_ee.py (el nombre del archvo es referencial) con el siguiente contenido:

(El contenido lo puedes copiar desde mi repositorio en github)

codigo fuente

Hay mucho que explicar sin embargo nos vamos a centrar en las partes que se debe cambiar para que puedan ejecutarlo sin problemas:

Cambiamos las líneas 7 y 8 en donde debemos colocar la ruta completa de las carpetas tal como aparece en tu computadora:

  • particular_dir_path: Se refiere a la Carpeta 1
  • global_dir_path: Se refiere a la Carpeta 2
particular_dir_path = '/Users/jhonny/odoo/odoo16/odoo/addons'
global_dir_path = '/Users/jhonny/odoo/odoo16/enterprise_demo/odoo-16.0+e.20230816/odoo/addons'

Finalmente ejecutamos el script desde la terminal:  python3 get_addons_ee.py

comando

Vemos que es posible cambiar la ruta de las carpetas en el momento de ejecución. Si deseamos mantener la ruta por defecto le damos Enter.

copiando

 

500 carpetas

Y listo, el script ha creado 3 archivos y copiado 500 carpetas según las instrucciones dadas.

Las 500 carpetas las ha colocado dentro de la carpeta diff (esta se crea de manera automática).

Archivos creados

4.- Recomendaciones

  • Intentar este tutorial usando GNU/Linux o MacOS. Para entornos Windows se debe instalar python y ejecutar el comando desde el CMD.
  • Podria lanzarse un servicio planificado en el sistema. Es decir que pueda ejecutarse cada cierto tiempo o en una hora específica.
  • Se podría agregarle un entorno gráfico al aplicativo que por lo pronto se ejecuta en la terminal.

Comentarios1

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.