Inhoudsopgave:

Mappen synchroniseren met Python: 5 stappen
Mappen synchroniseren met Python: 5 stappen

Video: Mappen synchroniseren met Python: 5 stappen

Video: Mappen synchroniseren met Python: 5 stappen
Video: Blender Python VSCode: fix "no workspace folder found" 2024, November
Anonim
Mappen synchroniseren met Python
Mappen synchroniseren met Python
Mappen synchroniseren met Python
Mappen synchroniseren met Python

Deze instructable laat je zien hoe je twee mappen (en alle mappen daarin) synchroon kunt houden, zodat de ene een directe kopie van de andere is. Ideaal voor het back-uppen van werk zowel lokaal, naar een cloud/netwerkserver of een USB-stick. Er is geen ervaring met programmeren nodig om deze tutorial te voltooien. Let op: dit werkt alleen met Windows, hoewel het proces vergelijkbaar is op Mac en Linux.

Ik heb een oude Windows-computer die ik heb ingesteld als server voor verschillende functies, waaronder een goedkope netwerkopslag die fungeert als zowel een mediaserver als een back-up van alle computergegevens van mijn gezin.

Omdat mijn familie allemaal graag lokaal op hun pc werkt, hadden we een gemakkelijke manier nodig om regelmatig een back-up van onze gegevens te maken. Ik had ook een manier nodig om de back-up te verdubbelen door een RAID-achtige benadering te implementeren op twee harde schijven op de server-pc. Ik wilde ook niet betalen voor software (ja ik weet het gierig). Als gevolg hiervan heeft alle gratis software de neiging om pop-ups te bevatten of zelfs de pc te vertragen met lange synchronisatietijden en groot CPU-gebruik, wat gewoon vervelend was.

Daarom heb ik met een beetje moeite een python-script geschreven dat de mappen zou synchroniseren die we allemaal nodig hadden. Ik kon dit dan aanpassen en distribueren naar de familie als een uitvoerbaar bestand dat ik kon instellen dat vensters regelmatig op de achtergrond werden uitgevoerd. De computergebruiker moest niet wijzer zijn.

Stap 1: Python en afhankelijkheden installeren

Om het distribueerbare programma te maken, moet u python op uw computer installeren. Volg hiervoor de weblink hier https://www.python.org/downloads/ en scrol omlaag totdat u de gewenste versie vindt. Opmerking: op het moment van schrijven werkt de module pyinstaller die we gaan gebruiken nog niet met python 3.8, dus je zult een compatibele versie van python (3.5-3.7) moeten gebruiken.

Volg de installatie door ervoor te zorgen dat u het selectievakje "Toevoegen aan PATH" aanvinkt.

Na de installatie opent u een opdrachtprompt en installeert u de python-modules die we nodig hebben. Typ hiervoor het volgende en volg indien nodig eventuele prompts:

pip installeer pyinstaller

pip dirsync installeren

Stap 2: Het Python-script

Het script is leuk en eenvoudig, slechts twee regels, kopieer en plak het volgende in IDLE (geïnstalleerd met Python) of Kladblok en sla op als "DirectorySync.py":

van dirsync synchronisatie importeren

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

Zorg ervoor dat u de twee bovenstaande mappen wijzigt met de twee mappen die u wilt synchroniseren. De dubbele backslash is vereist in de padnaam omdat de backslash een escape-teken is in Python.

De eerste regel importeert de dirsync-module die we eerder hebben geïnstalleerd.

De tweede voert de synchronisatie uit. De eerste map is de bronmap en de tweede is het doel, de 'sync' is het vertellen van de synchronisatiefunctie welke synchronisatiemodus moet worden geïmplementeerd. Purge=True toevoegen vertelt de functie om alles in de doelmap te verwijderen dat niet langer in de bronmap staat. Er zijn andere opties die kunnen worden geïmplementeerd, afhankelijk van uw behoeften.

De manier waarop het hierboven is geconfigureerd, synchroniseert ook alle mappen in de map op het hoogste niveau, dit kan indien nodig worden gestopt. Als u meer dan één map op het hoogste niveau wilt synchroniseren, voegt u eenvoudig meer regels toe aan uw code met de functie sync(). Zie de volgende link voor meer opties en hulp:

pypi.python.org/pypi/dirsync/2.2.2

Stap 3:.exe maken

Om het uitvoerbare bestand te maken, moeten we nu teruggaan naar de opdrachtprompt.

Typ het volgende en vervang het mappad door de route naar het DirectorySync.py-script dat we in de laatste stap hebben gemaakt:

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

In de maplocatie van je python-script creëert dit een reeks mappen: _pycache_, build, dist en twee andere bestanden. In de dist-map bevindt zich nu een bestand met de naam DirectorySync.exe. Als u dit uitvoert, wordt de synchronisatie op de achtergrond uitgevoerd. Dit bestand kan zoals het is naar iedereen worden gedistribueerd en ze kunnen vervolgens een synchronisatie uitvoeren zonder dat python op de computer hoeft te worden geïnstalleerd.

Om uit te leggen wat er gebeurt in de BOLD-tekst die in de opdrachtprompt is getypt:

'pyinstaller' vertelt de computer om de module pyinstaller te gebruiken die we eerder hebben gedownload

'-F' is een optie die pyinstaller vertelt om slechts één uitvoerbaar bestand te genereren en niet een reeks mappen die ook zouden moeten worden gedistribueerd.

'-w' is een optie die de computer vertelt om niet elke keer dat het script wordt uitgevoerd een opdrachtprompt weer te geven.

Het pad is het pad naar het python-script.

Zie de onderstaande link voor meer opties en hulp:

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

Stap 4: Automatisch uitvoeren

U bent nu klaar om alle mappen te synchroniseren zonder herhaaldelijk te hoeven kopiëren, plakken en verwijderen door gewoon op het uitvoerbare bestand te dubbelklikken. Maar we willen een stap verder gaan dan dat en Windows het proces automatisch laten uitvoeren, zodat u zich geen zorgen hoeft te maken.

Om dit te doen zullen we het Taakplanner-programma gebruiken dat bij Windows wordt geleverd, dit proces is gebaseerd op Windows 10 maar is bijna identiek op andere Windows-platforms.

  1. Open de Taakplanner vanuit het startmenu.
  2. Selecteer aan de rechterkant 'Taak maken' in het menu.
  3. Geef het een naam en beschrijving en zorg er onderaan voor dat het is geconfigureerd voor het juiste besturingssysteem.
  4. Maak op het tabblad 'Triggers' een nieuwe trigger aan door linksonder op 'Nieuw' te klikken, selecteer in de nieuwe pop-up de gewenste configuratie, ik heb ervoor gekozen om de taak te starten bij Aanmelden en elk uur te herhalen, zodat ik weet dat ik heb elk uur een back-up van mijn werk. Klik OK.
  5. Op het tabblad 'Acties' maak je op dezelfde manier een nieuwe actie aan. De actie die we nodig hebben is om een programma te starten dat standaard is. Blader naar het uitvoerbare bestand dat we eerder hebben gemaakt en selecteer. OPMERKING: - als u het uitvoerbare bestand verplaatst nadat u de taak hebt gemaakt, wordt de taak en dus de synchronisatie niet voltooid.
  6. Schakel op het tabblad 'Voorwaarden' de energie-instellingen uit, zodat het zowel op de batterij als op het stopcontact werkt.
  7. Klik op OK en je hebt nu je taak aangemaakt.

Start de computer opnieuw op en controleer na een tijdje de locatie van de doelmap en kijk of de synchronisatie werkte. Houd er rekening mee dat als u een grote map heeft, het even kan duren voordat alle mappen de eerste keer zijn gekopieerd.

Dat is de tutorial compleet, ik hoop dat je het nuttig vindt, als je vragen hebt, laat het me weten.

Stap 5: UPDATE 15 JAN 2020 - Programma downloaden

Ik gebruik dit programma nog steeds dat me goed heeft gediend, maar ik ben vaak door mensen gevraagd om eenmalige synchronisatietaken voor verschillende mappen handmatig uit te voeren, enz. Daarom dacht ik dat ik deze Instructable zou bijwerken met een link naar een programma dat ik heb gemaakt om het werk te doen. Het biedt een gebruikersinterface zodat mensen gemakkelijk een van de synchronisatietaken kunnen uitvoeren. Het programma kan worden gedownload van Github.

Aanbevolen: