Python Shutil Move

Python Shutil Move

Il linguaggio di programmazione chiamato Python è molto intuitivo e facile da capire. Python supporta molti pacchetti che coinvolgono funzioni integrate che rendono molto più semplice la codifica, il trasferimento di file e il calcolo. Uno di questi pacchetti si chiama shutil. Shutil è un modulo nella libreria standard Python che appartiene alla categoria File e Directory Access a partire da Python 3.10. Questo pacchetto Python, spesso noto come utility shell, consente agli utenti di eseguire operazioni complesse su singoli file e file di sistema. È uno strumento che supporta i processi che coinvolgono la cancellazione o la copia di file che possono essere automatizzati con l'aiuto di questo modulo.

Sintassi:

Lo shutil.La funzione Move () prende due parametri, vale a dire l'origine che accetta un tipo di stringa che rappresenta il percorso del file di origine e la destinazione che accetta un argomento del tipo di stringa che rappresenta il percorso della directory di destinazione. La funzione assume anche un terzo parametro opzionale chiamato Funzione di copia. Il modulo imposta la copia2 come funzione di copia predefinita. Può essere modificato in una funzione di copia diversa se quella corrisponde meglio alle tue esigenze. Se questo terzo parametro viene mantenuto come valore predefinito di Copy2, allora Copy2 è il valore predeterminato per questo argomento. Per questo argomento, possiamo anche utilizzare le funzioni di copia alternative.
La funzione copia ricorsivamente un file o una directory da una posizione (l'origine) a un'altra posizione specificata (la destinazione). Quindi, copia la destinazione. La fonte viene trasferita nella directory di destinazione se esiste già lì.

Esempio 1:

L'esempio 1 mostra l'uso più elementare di questa funzione. Dopo aver importato il modulo shido, la variabile "x" è impostata sulla posizione del file di origine corrente. Considerando che la variabile "y" è impostata sulla posizione desiderata in cui viene creato il nuovo file di destinazione. Lo shutil.La funzione Move () viene chiamata con i parametri di origine e di destinazione forniti attraverso le variabili "X" e "Y". La variabile "Z" contiene la stringa restituita che ha la destinazione del contenuto di origine trasferita.

Una volta eseguite le righe precedenti del codice, il terminale visualizza il risultato seguente come mostrato nell'immagine precedente. Come previsto, il file che è stato salvato al C: \ Users \ Aqsa \ Desktop \ Random.La posizione del testo viene ora spostata su E disco.

Di conseguenza, la figura precedente mostra che quando viene aperto il disco E, il file che era nella posizione precedente è ora visto come desiderato.

Esempio 2:

In questo esempio, la funzione di copia che è copia2 per impostazione predefinita viene modificata in shutil.Copia albero.

La funzionalità di base dello shutil.Copia tecnica albero () e shutil.Il metodo Move () consiste nel spostare un file se esiste già la directory target.

In precedenza, importiamo il modulo shutil prima di utilizzare una delle sue funzioni. Il codice precedente copia il contenuto del file nella posizione di origine in una posizione del file già esistente. Usiamo il metodo Copy Tree () perché la destinazione è già presente. Simile all'esempio 1, le variabili "x" e "y" contengono le posizioni di origine e destinazione del file in questione, rispettivamente, in formato stringa. Lo shutil.La funzione Move () viene chiamata con la funzione di copia impostata su shutil.Copia albero. La variabile "Z" contiene l'output della funzione che è la nuova posizione del file che si trova in precedenza in "x" in formato stringa.

La figura precedente mostra l'output sul terminale che è la nuova posizione del file che viene spostata. Ancora più importante, il file nella posizione di origine non viene cancellato durante il trasferimento, a differenza di Copy2.

Esempio 3:

Nell'esempio 3, vediamo lo spostamento di più cartelle da una posizione all'altra usando shutil.mossa(). Il seguente snippet mostra l'esistenza di due file chiamati "newfile.txt "e" casuale.TXT". Questi due file si trovano attualmente in C: \ Users \ Aqsa \ Desktop \ 123.

Nel codice precedente, abbiamo utilizzato un altro modulo chiamato OS. Questo modulo, proprio come il pacchetto shutil, contiene funzioni per la creazione e la rimozione della directory (cartella), recupera il proprio contenuto, modifica e identifica la directory corrente, ecc. Innanzitutto, ci sono due percorsi salvati nelle variabili "Path1" e "Path2", rispettivamente. Quindi, viene eseguito un ciclo in modo tale che tutti i file in "Path1" vengano spostati su "Path2". Il movimento dei file viene eseguito utilizzando shutil.mossa().

Come si può vedere nell'immagine precedente, i file vengono spostati correttamente nella posizione di destinazione mantenendo l'ordine.

Esempio 4:

Per questo esempio, considera il file denominato "casuale.txt "che viene salvato nel disco la posizione della cartella E: \. Utilizzando il codice nello snippet successivo, creiamo un nuovo file in una nuova posizione con il suo contenuto che è in “Random.TXT".

Una volta che le posizioni di origine e destinazione vengono salvate in variabili, vale a dire "x" e "y", salviamo il nome del nostro file nel file variabile sotto forma di una stringa. Una volta fatto ciò, usando il modulo OS, utilizziamo una funzione chiamata OS.sentiero.Splitext () in cui il nome del percorso di "file" è diviso in due parti: root ed estensione. In questo caso, la radice è tutto tranne la componente di estensione del percorso fornito. Considerando che Ext sta per l'estensione e contiene quel pezzo. Ora, salviamo le due parti in variabili separate in cui la prima parte della divisione A [0] che è il percorso del file viene salvata in "Nome". Considerando che la seconda parte A [1] viene salvata in "formato" che contiene l'estensione che, in questo caso, è ".TXT". Ora, la nuova variabile "B" si unisce alle stringhe del "nome" e "formato" con l'aggiunta della stringa "2.0 "In mezzo. I percorsi in "Y" e "B" sono uniti utilizzando la funzione OS chiamata OS.sentiero.Unisciti a () e salvato in "C". Una volta fatto ciò, utilizziamo lo shutil.Sposta () funzione per spostare il file nella posizione di origine di "X + File" nella posizione di destinazione di "C".

Il precedente snippet mostra che il nuovo file che si chiama "Random2.0.txt ”nel codice precedente è ora salvato nella posizione di destinazione.

Esempio 5:

In questo quinto esempio, gli stessi file nell'esempio 4 vengono utilizzati dove si trovano nella loro nuova posizione come impostato nell'esempio 4. In questo esempio, mostreremo come trasferire i file da un elenco che si trova attualmente in una cartella a un'altra.

Il codice precedente mostra le posizioni di origine e destinazione salvate nelle variabili "X1" e "Y1". L'elenco "files_to_move" contiene gli elementi che sono i nomi dei file. Utilizzando il loop, possiamo attraversare l'elenco "file_to_move" e spostare i file utilizzando la shutil.Sposta () funzione sulla sorgente di destinazione che è memorizzata in "Y1".

Come si può vedere nell'immagine precedente, i file vengono trasferiti correttamente nella loro nuova posizione.

Esempio 6:

Nel nostro ultimo esempio, impiegheremo gli stessi file utilizzati nell'esempio 5 per spostare un file se il nome del file contiene una stringa specifica.

In questo codice, ci assicuriamo di un modulo aggiuntivo chiamato "Glob". Come al solito, le posizioni di origine e destinazione vengono salvate. Abbiamo anche una variabile stringa chiamata "formato" che è utile per determinare i file che hanno ".estensione txt ". Un elenco di file che corrispondono all'estensione fornita nell'argomento del formato viene restituito da Glob.funzione glob (). Quindi, il passaggio successivo sposta ogni file usando lo shutil.comando sposta () usando il ciclo.

Tutti i file vengono trasferiti correttamente come visualizzato nello snippet precedente.

Conclusione

Shutil è uno strumento utile che è utile e ti dà un maggiore controllo, soprattutto quando si manipola le posizioni dei file, mentre si preserva il contenuto del file. Il modulo shutil ha molte funzioni e una delle quali è la funzione chiamata shutil.mossa(). Utilizzando questo modulo, una varietà di operazioni di alto livello può essere impiegata su file e raccolte di file mentre abbiamo discusso dei molteplici esempi relativi a questo concetto nell'articolo.