Tabla de contenido:

Sincronizar carpetas con Python: 5 pasos
Sincronizar carpetas con Python: 5 pasos

Video: Sincronizar carpetas con Python: 5 pasos

Video: Sincronizar carpetas con Python: 5 pasos
Video: 1.1 Instalación y Configuración de Python en Visual Studio Code | Programar desde cero en Python 2024, Noviembre
Anonim
Sincronizar carpetas con Python
Sincronizar carpetas con Python
Sincronizar carpetas con Python
Sincronizar carpetas con Python

Este instructivo le mostrará cómo mantener dos carpetas (y todas las carpetas dentro de ellas) sincronizadas para que una sea una copia directa de la otra. Ideal para realizar copias de seguridad del trabajo de forma local, en un servidor de red o en la nube o en una unidad USB. No se necesita experiencia en programación para completar este tutorial. Tenga en cuenta que esto solo funciona con Windows, aunque el proceso es similar en Mac y Linux.

Tengo una vieja computadora con Windows que configuré que actúa como servidor para varias funciones, una de las cuales es un almacenamiento económico adjunto a la red que actúa como servidor de medios y como copia de seguridad de todos los datos informáticos de mi familia.

Como a toda mi familia le gusta trabajar localmente en sus PC, necesitábamos una manera fácil de hacer copias de seguridad de nuestros datos con regularidad. También necesitaba una forma de duplicar la copia de seguridad mediante la implementación de un enfoque tipo RAID en dos discos duros en la PC del servidor. Tampoco quise pagar por ningún software (sí, sé que soy tacaño). Como consecuencia de esto, todo el software gratuito tiende a venir con ventanas emergentes o incluso a ralentizar la PC con tiempos de sincronización prolongados y un gran uso de la CPU, lo cual era simplemente molesto.

Por lo tanto, con un poco de esfuerzo, escribí un script de Python que sincronizaría las carpetas que todos necesitábamos. Luego podría personalizar y distribuir esto a la familia como un ejecutable que podría configurar Windows para que se ejecute de forma regular en segundo plano. El usuario de la computadora no tenía que ser más sabio.

Paso 1: instalar Python y las dependencias

Para crear el programa distribuible necesita instalar Python en su computadora. Para hacer esto, siga el enlace web aquí https://www.python.org/downloads/ y desplácese hacia abajo hasta encontrar la versión que desea. Nota: Desafortunadamente, al momento de escribir el módulo pyinstaller que usaremos, aún no funciona con Python 3.8, por lo que deberá usar una versión compatible de Python (3.5-3.7).

Siga la instalación asegurándose de marcar la casilla de verificación "Agregar a RUTA".

Una vez instalado, abra un símbolo del sistema e instale los módulos de Python que necesitamos, para hacer esto, escriba lo siguiente y siga las instrucciones según sea necesario:

pip instalar pyinstaller

pip instalar dirsync

Paso 2: el script de Python

El script es agradable y simple, solo dos líneas, copie y pegue lo siguiente en IDLE (instalado con Python) o en el bloc de notas y guárdelo como "DirectorySync.py":

desde la sincronización de importación de dirsync

sync ('C: / FOLDER_A', 'E: / FOLDER_B', 'sync', purge = True)

Asegúrese de cambiar las dos carpetas anteriores con las dos carpetas que desea sincronizar. La barra invertida doble es necesaria en el nombre de la ruta, ya que la barra invertida es un carácter de escape en Python.

La primera línea importa el módulo dirsync que instalamos anteriormente.

El segundo realiza la sincronización. La primera carpeta es la carpeta de origen y la segunda es el destino, la 'sincronización' es decirle a la función de sincronización qué modo de sincronización implementar. Agregar purge = True le dice a la función que elimine cualquier cosa en la carpeta de destino que ya no esté en la carpeta de origen. Hay otras opciones que se pueden implementar en función de sus necesidades.

La forma en que está configurado anteriormente también sincronizará todas las carpetas dentro de la carpeta de nivel superior, esto se puede detener si es necesario. Si desea sincronizar más de una carpeta de nivel superior, simplemente agregue más líneas a su código con la función sync (). Para obtener más opciones y ayuda, consulte el siguiente enlace:

pypi.python.org/pypi/dirsync/2.2.2

Paso 3: crear.exe

Para crear el ejecutable, ahora necesitamos volver al símbolo del sistema.

Escriba lo siguiente reemplazando la ruta de la carpeta con la ruta al script DirectorySync.py que creamos en el último paso:

pyinstaller -F -w C: /Ruta_a_su_carpeta/DirectorySync.py

En la ubicación de la carpeta de su script de Python, esto crea una serie de carpetas: _pycache_, build, dist y otros dos archivos. En la carpeta dist ahora hay un archivo llamado DirectorySync.exe, al ejecutarlo, se realizará la sincronización en segundo plano. Este archivo se puede distribuir como está a cualquier persona y luego pueden ejecutar una sincronización sin tener que tener Python instalado en la computadora.

Para explicar lo que está sucediendo en el texto NEGRITA que se escribió en el símbolo del sistema:

'pyinstaller' le dice a la computadora que use el módulo pyinstaller que descargamos anteriormente

'-F' es una opción que le dice a pyinstaller que solo genere un ejecutable y no una serie de carpetas que también tendrían que ser distribuidas.

'-w' es una opción que le dice a la computadora que no muestre un símbolo del sistema cada vez que ejecuta el script.

La ruta es la ruta al script de Python.

Para obtener más opciones y ayuda, consulte el siguiente enlace:

pyinstaller.readthedocs.io/en/stable/usage…

Paso 4: ejecución automática

Ahora está listo para sincronizar cualquier carpeta sin tener que copiar, pegar y eliminar repetidamente con solo hacer doble clic en el ejecutable. Pero queremos ir un paso más allá y que Windows ejecute el proceso automáticamente para que no tenga que preocuparse.

Para ello usaremos el programa Task Scheduler que viene con Windows, este proceso está basado en Windows 10 pero es casi idéntico en otras plataformas de Windows.

  1. Abra el Programador de tareas desde el menú de inicio.
  2. En el lado derecho, seleccione 'Crear tarea' en el menú.
  3. Asígnele un nombre y una descripción y, en la parte inferior, asegúrese de que esté configurado para el sistema operativo correcto.
  4. En la pestaña 'Disparadores', cree un nuevo disparador haciendo clic en 'Nuevo' en la parte inferior izquierda, en la nueva ventana emergente seleccione la configuración que desee, elegí comenzar la tarea en Iniciar sesión y repetir cada hora para saber que tengo una copia de seguridad de mi trabajo cada hora. Haga clic en Aceptar.
  5. En la pestaña 'Acciones' cree una nueva acción de la misma manera. La acción que necesitamos es iniciar un programa que es el predeterminado. Busque el ejecutable que creamos anteriormente y seleccione. NOTA: si mueve el ejecutable después de crear la tarea, la tarea y, por lo tanto, la sincronización no se completarán.
  6. En la pestaña 'Condiciones', desmarque la configuración de energía para que funcione con batería y enchufado.
  7. Haga clic en Aceptar y habrá creado su tarea.

Reinicie la computadora y, después de un tiempo, verifique la ubicación de la carpeta de destino y vea que la sincronización funcionó, tenga en cuenta que si tiene una carpeta grande, la sincronización puede demorar un poco en copiar todas las carpetas la primera vez.

Ese es el tutorial completo, espero que te sea de utilidad, cualquier duda, házmelo saber.

Paso 5: ACTUALIZACIÓN 15 DE ENERO DE 2020 - Descargar programa

Todavía uso este programa que me ha servido bien. Sin embargo, la gente me ha pedido con frecuencia que realice trabajos de sincronización únicos para diferentes carpetas manualmente, etc. Por lo tanto, pensé en actualizar este Instructable con un enlace a un programa que creé para hacer el trabajo.. Proporciona una interfaz de usuario para que las personas puedan realizar fácilmente uno de los trabajos de sincronización. El programa se puede descargar desde Github.

Recomendado: