Sommario:

Sincronizzare le cartelle con Python: 5 passaggi
Sincronizzare le cartelle con Python: 5 passaggi

Video: Sincronizzare le cartelle con Python: 5 passaggi

Video: Sincronizzare le cartelle con Python: 5 passaggi
Video: Django Tutorial ITA - Parte 1/3 - Creare e pubblicare un sito con Python! Corso in ITALIANO 2024, Novembre
Anonim
Sincronizzare le cartelle con Python
Sincronizzare le cartelle con Python
Sincronizzare le cartelle con Python
Sincronizzare le cartelle con Python

Questa istruzione ti mostrerà come mantenere sincronizzate due cartelle (e tutte le cartelle al loro interno) in modo che una sia una copia diretta dell'altra. Ideale per eseguire il backup del lavoro sia localmente, su un server cloud/di rete o su un'unità USB. Non è necessaria alcuna esperienza di programmazione per completare questo tutorial. Tieni presente che funziona solo con Windows sebbene il processo sia simile su Mac e Linux.

Ho un vecchio computer Windows che ho configurato fungendo da server per varie funzioni, una delle quali è uno storage collegato alla rete economico che funge sia da server multimediale che da backup di tutti i dati del computer della mia famiglia.

Poiché alla mia famiglia piace lavorare localmente sui propri PC, avevamo bisogno di un modo semplice per eseguire regolarmente il backup dei nostri dati. Avevo anche bisogno di un modo per raddoppiare il backup implementando un approccio simile a un RAID su due dischi rigidi sul PC server. Inoltre non volevo pagare per nessun software (sì lo so avaro di me). Di conseguenza, tutto il software gratuito tende a presentare pop-up o addirittura a rallentare il PC con lunghi tempi di sincronizzazione e un grande utilizzo della CPU, il che era semplicemente fastidioso.

Pertanto, con un piccolo sforzo, ho scritto uno script Python che sincronizzerebbe le cartelle di cui tutti avevamo bisogno. Potrei quindi personalizzarlo e distribuirlo alla famiglia come eseguibile che potrei impostare Windows per l'esecuzione regolare in background. L'utente del computer non doveva essere più saggio.

Passaggio 1: installazione di Python e dipendenze

Per creare il programma distribuibile devi installare python sul tuo computer. Per farlo segui il link web qui https://www.python.org/downloads/ e scorri verso il basso fino a trovare la versione che desideri. Nota: Sfortunatamente, al momento della scrittura il modulo pyinstaller che useremo non funziona ancora con python 3.8 quindi dovrai usare una versione compatibile di python (3.5-3.7).

Segui l'installazione assicurandoti di selezionare la casella di controllo "Aggiungi al PERCORSO".

Una volta installato, apri un prompt dei comandi e installa i moduli Python di cui abbiamo bisogno, per fare questo digita quanto segue e segui tutti i prompt come richiesto:

pip install pyinstaller

pip install dirsync

Passaggio 2: lo script Python

Lo script è carino e semplice, solo due righe, copia e incolla quanto segue in IDLE (installato con Python) o nel blocco note e salva come "DirectorySync.py":

da dirsync import sync

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

Assicurati di cambiare le due cartelle sopra con le due cartelle che desideri sincronizzare. La doppia barra rovesciata è richiesta nel nome del percorso poiché la barra rovesciata è un carattere di escape in Python.

La prima riga importa il modulo dirsync che abbiamo installato in precedenza.

Il secondo esegue la sincronizzazione. La prima cartella è la cartella di origine e la seconda è la destinazione, la 'sincronizzazione' indica alla funzione di sincronizzazione quale modalità di sincronizzazione implementare. L'aggiunta di purge=True indica alla funzione di eliminare qualsiasi cosa nella cartella di destinazione che non si trova più nella cartella di origine. Ci sono altre opzioni che possono essere implementate a seconda delle tue esigenze.

Il modo in cui è configurato sopra sincronizzerà anche tutte le cartelle all'interno della cartella di livello superiore, questo può essere interrotto se necessario. Se vuoi sincronizzare più di una cartella di primo livello, aggiungi semplicemente più righe al tuo codice con la funzione sync(). Per ulteriori opzioni e assistenza, vedere il seguente collegamento:

pypi.python.org/pypi/dirsync/2.2.2

Passaggio 3: creazione di.exe

Per creare l'eseguibile dobbiamo ora tornare al prompt dei comandi.

Digita quanto segue sostituendo il percorso della cartella con la route allo script DirectorySync.py che abbiamo creato nell'ultimo passaggio:

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

Nella posizione della cartella del tuo script python questo crea una serie di cartelle: _pycache_, build, dist e altri due file. Nella cartella dist c'è ora un file chiamato DirectorySync.exe, l'esecuzione di questo eseguirà la sincronizzazione in background. Questo file può essere distribuito così com'è a chiunque e possono quindi eseguire una sincronizzazione senza dover installare Python sul computer.

Per spiegare cosa sta succedendo nel testo BOLD che è stato digitato nel prompt dei comandi:

'pyinstaller' dice al computer di usare il modulo pyinstaller che abbiamo scaricato in precedenza

'-F' è un'opzione che dice a pyinstaller di generare solo un eseguibile e non una serie di cartelle che dovrebbero anche essere distribuite.

'-w' è un'opzione che dice al computer di non visualizzare un prompt dei comandi ogni volta che esegue lo script.

Il percorso è il percorso dello script Python.

Per ulteriori opzioni e assistenza, vedere il collegamento seguente:

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

Passaggio 4: esecuzione automatica

Ora sei pronto per sincronizzare qualsiasi cartella senza dover copiare, incollare ed eliminare ripetutamente semplicemente facendo doppio clic sull'eseguibile. Ma vogliamo fare un passo in più e fare in modo che Windows esegua il processo automaticamente in modo che tu non debba preoccuparti.

Per fare ciò utilizzeremo il programma Utilità di pianificazione fornito con Windows, questo processo è basato su Windows 10 ma è quasi identico su altre piattaforme Windows.

  1. Apri l'Utilità di pianificazione dal menu di avvio.
  2. Sul lato destro seleziona "Crea attività" dal menu.
  3. Dagli un nome e una descrizione e in fondo assicurati che sia configurato per il sistema operativo corretto.
  4. Nella scheda "Trigger", crea un nuovo trigger facendo clic su "Nuovo" in basso a sinistra, nel nuovo popup seleziona la configurazione desiderata, ho scelto di iniziare l'attività all'accesso e ripetere ogni ora così so che avere un backup del mio lavoro ogni ora. Fare clic su OK.
  5. Nella scheda "Azioni" crea una nuova azione allo stesso modo. L'azione di cui abbiamo bisogno è avviare un programma che è l'impostazione predefinita. Sfoglia l'eseguibile che abbiamo creato in precedenza e seleziona. NOTA: se si sposta l'eseguibile dopo aver creato l'attività, l'attività e quindi la sincronizzazione non verranno completate.
  6. Nella scheda "Condizioni" deseleziona le impostazioni di alimentazione in modo che funzioni a batteria e sia collegato.
  7. Fai clic su OK e ora hai creato la tua attività.

Riavvia il computer e dopo un po' controlla la posizione della cartella di destinazione e vedi che la sincronizzazione ha funzionato, tieni presente che se hai una cartella di grandi dimensioni, la sincronizzazione potrebbe richiedere del tempo per copiare tutte le cartelle la prima volta.

Questo è il tutorial completo, spero che lo trovi utile, qualsiasi domanda, fammi sapere.

Passaggio 5: AGGIORNAMENTO 15 GENNAIO 2020 - Scarica il programma

Uso ancora questo programma che mi è servito bene Tuttavia mi è stato spesso chiesto da persone di eseguire una sola volta la sincronizzazione manuale di lavori per cartelle diverse, ecc. Pertanto ho pensato di aggiornare questo Instructable con un collegamento a un programma che ho creato per fare il lavoro. Fornisce un'interfaccia utente in modo che le persone possano facilmente eseguire uno dei lavori di sincronizzazione. Il programma può essere scaricato da Github.

Consigliato: