Table des matières:

Synchroniser des dossiers avec Python : 5 étapes
Synchroniser des dossiers avec Python : 5 étapes

Vidéo: Synchroniser des dossiers avec Python : 5 étapes

Vidéo: Synchroniser des dossiers avec Python : 5 étapes
Vidéo: APPRENDRE LE PYTHON #10 ? LES FICHIERS 2024, Novembre
Anonim
Synchroniser des dossiers avec Python
Synchroniser des dossiers avec Python
Synchroniser des dossiers avec Python
Synchroniser des dossiers avec Python

Cette instructable vous montrera comment synchroniser deux dossiers (et tous les dossiers qu'ils contiennent) afin que l'un soit une copie directe de l'autre. Idéal pour sauvegarder le travail à la fois localement, sur un serveur cloud/réseau ou sur une clé USB. Aucune expérience en programmation n'est nécessaire pour terminer ce tutoriel. Veuillez noter que cela ne fonctionne qu'avec Windows bien que le processus soit similaire sur Mac et Linux.

J'ai un vieil ordinateur Windows que j'ai configuré en tant que serveur pour diverses fonctions, dont l'un est un stockage connecté au réseau bon marché qui sert à la fois de serveur multimédia et de sauvegarde de toutes les données informatiques de ma famille.

Comme ma famille aime tous travailler localement sur leurs PC, nous avions besoin d'un moyen simple de sauvegarder nos données régulièrement. J'avais également besoin d'un moyen de doubler la sauvegarde en mettant en œuvre une approche de type RAID sur deux disques durs sur le PC serveur. Je ne voulais pas non plus payer pour aucun logiciel (oui je sais avare moi). En conséquence, tous les logiciels gratuits ont tendance à contenir des fenêtres contextuelles ou même à ralentir le PC avec de longs temps de synchronisation et une utilisation importante du processeur, ce qui était tout simplement ennuyeux.

Par conséquent, avec un petit effort, j'ai écrit un script python qui synchroniserait les dossiers dont nous avions tous besoin. Je pouvais ensuite le personnaliser et le distribuer à la famille en tant qu'exécutable que je pouvais configurer Windows pour qu'il s'exécute régulièrement en arrière-plan. L'utilisateur de l'ordinateur ne devait pas être plus sage.

Étape 1: Installation de Python et des dépendances

Pour créer le programme distribuable, vous devez installer python sur votre ordinateur. Pour ce faire, suivez le lien Web ici https://www.python.org/downloads/ et faites défiler vers le bas jusqu'à ce que vous trouviez la version souhaitée. Remarque: Malheureusement, au moment de l'écriture du module pyinstaller que nous utiliserons ne fonctionne pas encore avec python 3.8, vous devrez donc utiliser une version compatible de python (3.5-3.7).

Suivez l'installation en vous assurant de cocher la case "Ajouter au CHEMIN".

Une fois installé, ouvrez une invite de commande et installez les modules python dont nous avons besoin, pour ce faire, tapez ce qui suit et suivez les invites nécessaires:

pip installer pyinstaller

synchronisation d'annuaire d'installation de pip

Étape 2: le script Python

Le script est agréable et simple, seulement deux lignes, copiez et collez ce qui suit dans IDLE (installé avec Python) ou dans le bloc-notes et enregistrez-le sous "DirectorySync.py":

à partir de la synchronisation d'importation de la synchronisation d'annuaire

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

Assurez-vous de changer les deux dossiers ci-dessus avec les deux dossiers que vous souhaitez synchroniser. La double barre oblique inverse est requise dans le nom du chemin car la barre oblique inverse est un caractère d'échappement en Python.

La première ligne importe le module de synchronisation d'annuaire que nous avons installé précédemment.

Le second effectue la synchronisation. Le premier dossier est le dossier source et le second est la cible, le « sync » indique à la fonction de synchronisation quel mode de synchronisation mettre en œuvre. L'ajout de purge=True indique à la fonction de supprimer tout élément du dossier cible qui ne se trouve plus dans le dossier source. Il existe d'autres options qui peuvent être mises en œuvre en fonction de vos besoins.

La façon dont il est configuré ci-dessus synchronisera également tous les dossiers du dossier de niveau supérieur, cela peut être arrêté si nécessaire. Si vous souhaitez synchroniser plus d'un dossier de niveau supérieur, ajoutez simplement plus de lignes à votre code avec la fonction sync(). Pour plus d'options et d'aide, consultez le lien suivant:

pypi.python.org/pypi/dirsync/2.2.2

Étape 3: Création de.exe

Pour créer l'exécutable, nous devons maintenant revenir à l'invite de commande.

Tapez ce qui suit en remplaçant le chemin du dossier par la route vers le script DirectorySync.py que nous avons créé à la dernière étape:

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

Dans l'emplacement du dossier de votre script python, cela crée une série de dossiers: _pycache_, build, dist et deux autres fichiers. Dans le dossier dist se trouve maintenant un fichier appelé DirectorySync.exe, son exécution effectuera la synchronisation en arrière-plan. Ce fichier peut être distribué tel quel à n'importe qui et ils peuvent ensuite exécuter une synchronisation sans avoir à installer python sur l'ordinateur.

Pour expliquer ce qui se passe dans le texte en GRAS qui a été tapé dans l'invite de commande:

'pyinstaller' indique à l'ordinateur d'utiliser le module pyinstaller que nous avons téléchargé précédemment

'-F' est une option qui indique à pyinstaller de ne générer qu'un seul exécutable et non une série de dossiers qui devraient également être distribués.

'-w' est une option qui indique à l'ordinateur de ne pas afficher une invite de commande à chaque fois qu'il exécute le script.

Le chemin est le chemin d'accès au script python.

Pour plus d'options et d'aide, consultez le lien ci-dessous:

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

Étape 4: Exécuter automatiquement

Vous êtes maintenant prêt à synchroniser tous les dossiers sans avoir à copier, coller et supprimer à plusieurs reprises en double-cliquant simplement sur l'exécutable. Mais nous voulons aller plus loin que cela et que Windows exécute le processus automatiquement afin que vous n'ayez pas à vous inquiéter.

Pour ce faire, nous utiliserons le programme Planificateur de tâches fourni avec Windows, ce processus est basé sur Windows 10 mais est presque identique sur les autres plates-formes Windows.

  1. Ouvrez le Planificateur de tâches à partir du menu Démarrer.
  2. Sur le côté droit, sélectionnez « Créer une tâche » dans le menu.
  3. Donnez-lui un nom et une description et en bas, assurez-vous qu'il est configuré pour le bon système d'exploitation.
  4. Dans l'onglet 'Triggers', créez un nouveau trigger en cliquant sur 'Nouveau' en bas à gauche, sur le nouveau pop up sélectionnez la configuration que vous souhaitez, j'ai choisi de commencer la tâche à la connexion et de répéter toutes les heures pour que je sache que je avoir une sauvegarde de mon travail toutes les heures. Cliquez sur OK.
  5. Dans l'onglet 'Actions', créez une nouvelle action de la même manière. L'action dont nous avons besoin est de démarrer un programme qui est le programme par défaut. Accédez à l'exécutable que nous avons créé précédemment et sélectionnez. REMARQUE:- si vous déplacez l'exécutable après avoir créé la tâche, la tâche et donc la synchronisation ne se termineront pas.
  6. Dans l'onglet « Conditions », décochez les paramètres d'alimentation afin qu'il fonctionne sur batterie et branché.
  7. Cliquez sur OK et vous avez maintenant créé votre tâche.

Redémarrez l'ordinateur et après un certain temps, vérifiez l'emplacement du dossier cible et voyez que la synchronisation a fonctionné. Veuillez noter que si vous avez un dossier volumineux, la synchronisation peut prendre un certain temps pour copier tous les dossiers la première fois.

Voilà le tutoriel est terminé, j'espère que vous le trouverez utile, si vous avez des questions, faites-le moi savoir.

Étape 5: MISE À JOUR 15 JAN 2020 - Télécharger le programme

J'utilise toujours ce programme qui m'a bien servi Cependant, des personnes m'ont souvent demandé de faire des tâches de synchronisation pour différents dossiers manuellement, etc. Par conséquent, j'ai pensé mettre à jour cet Instructable avec un lien vers un programme que j'ai créé pour faire le travail. Il fournit une interface utilisateur afin que les utilisateurs puissent facilement effectuer l'une des tâches de synchronisation. Le programme peut être téléchargé depuis Github.

Conseillé: