Vuoi migliorare la tua abilità Python? Quindi puoi provare a svolgere alcune attività sul tuo computer con Python. Copiare e incollare file da una directory all'altra con Python è un modo divertente per farlo.

Oltre ad essere divertente, ti consente di leggere e scrivere file rapidamente senza essere distratto dal tuo codice. Se sei nuovo in Python, è un'abilità che potresti ancora aver bisogno di imparare in un modo o nell'altro. Quindi, scopriamo come copiare file con Python attraverso questo post.

Requisiti per copiare file con Python

Esistono molti modi per copiare e incollare file con Python. Quindi, il requisito per farlo varia e dipende dal metodo che decidi di utilizzare.

Anche se potresti non aver bisogno di moduli aggiuntivi per copiare file con Python, puoi comunque usare le librerie integrate se lo desideri.

Ad esempio, se desideri utilizzare l'estensione os metodo, è necessario importarlo nel codice. Tuttavia, uno dei modi più diffusi per copiare file con Python è utilizzare l'estensione shutil biblioteca.

instagram viewer

Vediamo come possiamo usare questi vari metodi per copiare file con Python.

Come copiare file utilizzando la libreria Shutil incorporata di Python

Il shutil module è una potente libreria Python incorporata per leggere e scrivere file velocemente in Python.

Per utilizzarlo, è sufficiente fornire il percorso completo dei file di origine e di destinazione.

In sostanza, shutil prende questo formato:

shutil.copy ([percorso directory di origine], [percorso directory di destinazione], follow_symlinks = True)

Ad esempio, il codice seguente utilizza shutil.copy () per copiare un file denominato copy.txt da una cartella chiamata la mia cartella in un altro chiamato destinazione. Quindi rinomina il file di destinazione come newFile.txt:

import shutil
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)

Nota che puoi scrivere il tuo codice in formato qualsiasi editor di codice di tua scelta. È quindi possibile eseguirlo utilizzando la riga di comando.

Tuttavia, puoi anche utilizzare il Python Integrated Development Environment (IDLE) predefinito se non hai familiarità con l'esecuzione di Python tramite la riga di comando.

Relazionato: Comandi del prompt dei comandi (CMD) che devi conoscere

Il shutil.copy metodo non copia i metadati del file di origine. In sostanza, la tua macchina vede il file di destinazione come un file completamente nuovo e gli fornisce nuovi metadati.

Tuttavia, per copiare i metadati insieme al file originale, utilizzare l'estensione shutil.copy2 metodo:

import shutil
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)

Il metodo sopra conserva i metadati originali del vecchio file nel file di destinazione. Ad esempio, il file di destinazione conserva la data di creazione del file di origine, le sue dimensioni e altri attributi.

Il follow_symlinks argomento è una dichiarazione di collegamento simbolico che consente shutil segui un percorso assoluto. Pertanto è necessario includerlo se i file di origine e di destinazione si trovano in directory diverse.

Ma se entrambi i file si trovano nella directory di lavoro corrente, non è necessario includere un file follow_symlinks. Se lo fai, Python solleva un'eccezione di sintassi.

Quindi, se stai incollando il file sorgente nella tua directory di lavoro corrente, il tuo codice dovrebbe essere simile a questo:

import shutil
shutil.copy2 (sourceFile, destinationFile)

Oltre a utilizzare i metodi shutil sopra, puoi anche usare shutil.copyfile o shutil.copyfileobj.

Utilizzando shutil.copyfileobj è un po 'diverso in quanto richiede il built-in Aperto funzione. Quindi, è necessario leggere e scrivere binario includendo il file "rb" e "wb" argomenti.

Vediamo come il file shutil.copyfileobj Il metodo funziona utilizzando le stesse directory che abbiamo usato in precedenza:

import shutil
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

Nota che shutil.copyfileobj () non richiede l'estensione follow_symlinks discussione.

Tuttavia, shutil.copyfile () funziona più o meno allo stesso modo .copia e .copy2 fa. Differiscono solo in modo insignificante nelle loro funzioni interne.

Per utilizzare il file shutil.copyfile () metodo:

import shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)

Come copiare file con il modulo os

Il os il modulo utilizza due metodi incorporati per copiare i file; os.system () e os.popen () metodi.

Il os.system () metodo consente di imitare l'ambiente della riga di comando.

Tuttavia, un difetto dei metodi del sistema operativo è che copiano solo i file all'interno della directory di lavoro corrente.

Per utilizzare il file os.system () metodo su Windows:

import os
os.system ('copia sorgente.txt destinazione.txt)

Puoi anche usare il built-in xcopy Comando del terminale di Windows:

import os
os.system ('xcopy source.txt destinazione.txt)

Per utilizzare il file os.system metodo su Linux, sostituire copia con cp:

import os
os.system ('cp source.txt destinazione.txt)

Come copiare file utilizzando il metodo os.popen

Per utilizzare questo metodo, sostituire os.system () con os.popen ().

Su Windows, usa:

import os
os.popen ('copia source.txt destinazione.txt)

Come abbiamo fatto con os.system (), sostituire copia con cp per utilizzare questo metodo su Linux:

import os
os.popen ('cp source.txt destinazione.txt)

Come copiare file con il modulo sottoprocesso di Python

Oltre ai metodi sopra, puoi anche usare il file sottoprocesso () libreria per copiare file in Python:

importa sottoprocesso come sp
sp.call ("copia sourceFile destinationFile", shell = True)

Tuttavia, su Linux, usa:

importa sottoprocesso come sp
sp.call ("cp sourceFile destinationFile", shell = True)

Il sottoprocesso libreria utilizza anche subprocess.check_out () metodo. Funziona allo stesso modo subprocess.call () fa:

importa sottoprocesso come sp
sp.check_out ("copia sourceFile destinationFile", shell = True)

Su Linux, sostituisci copia con cp:

importa sottoprocesso come sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

Tuttavia, come i metodi del sistema operativo, i metodi di sottoprocesso funzionano solo con i file nella directory di lavoro corrente.

Nota: Puoi anche copiare i file in una cartella se si trova nella stessa directory di lavoro del file di origine. Tutto quello che devi fare è sostituire il nome del file di destinazione con il nome della cartella di destinazione. Tuttavia, assicurati che la cartella di destinazione e il file di origine si trovino nella directory di lavoro corrente.

Come copiare file in Python senza usare le librerie

Puoi anche copiare file in Python senza dipendere da alcuna libreria. Come il metodo shutil, hai solo bisogno dei percorsi completi delle directory di origine e di destinazione.

Ecco come ottenere questo risultato:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
con open (sourcePath, "rb") come letto:
con open (destinationPath, "wb") come myfile:
myfile.write (read.read ())

Per rendere il codice riutilizzabile, puoi modificarlo in una funzione:

def copyFile (source = None, destination = None):
in caso contrario (origine e destinazione) == Nessuno:
con open (source, "rb") come letto:
con open (destinazione, "wb") come myfile:
myfile.write (read.read ())
altro:
print ("Inserisci i percorsi di origine e di destinazione")
copyFile (sourcePath, destinationPath)

Questo è tutto. Hai appena creato una copiatrice di file riutilizzabile con Python senza utilizzare alcuna libreria.

Continua ad automatizzare le attività con Python

Oltre ad aiutarti a rimanere concentrato sul tuo codice durante la creazione di progetti, la copia di file con Python ti consente di comprendere meglio la gestione dei file con Python. Tuttavia, giocare con le attività Python è un modo per migliorare le tue abilità Python, soprattutto se sei un principiante.

Ad esempio, puoi modificare la data e l'ora sul tuo PC con il modulo os. Puoi anche scrivere comandi bash personalizzati con Python, se lo desideri.

E-mail
Come creare i propri programmi da riga di comando in Python con un clic

Vuoi creare i tuoi programmi da riga di comando Python ma lo trovi troppo difficile? Usa Click, un utile strumento Python per semplificare il tuo codice.

Argomenti correlati
  • Programmazione
  • Pitone
Circa l'autore
Idowu Omisola (56 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero, gioca con la programmazione e passa alla scacchiera quando è annoiato, ma ama anche staccarsi dalla routine una volta ogni tanto. La sua passione per mostrare alle persone come aggirare la tecnologia moderna lo motiva a scrivere di più.

Altro di Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.