Imparare Python? Ecco come copiare un file

Imparare Python? Ecco come copiare un file

Vuoi migliorare le tue abilità di 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 distrarti dal tuo codice. Se non conosci Python, è un'abilità che potresti ancora aver bisogno di acquisire in un modo o nell'altro. Quindi, scopriamo come copiare file con Python attraverso questo post.





Requisiti per la copia di 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 i file con Python, puoi comunque utilizzare le librerie integrate se lo desideri.

Ad esempio, se si desidera utilizzare il tu metodo, è necessario importarlo nel codice. Tuttavia, uno dei modi più diffusi per copiare file con Python è usare il chiusa biblioteca.



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

Come copiare i file usando la libreria Shutil incorporata di Python

Il chiusa module è una libreria Python potente e integrata per leggere e scrivere file rapidamente in Python.





Per usarlo, devi solo fornire il percorso completo dei file di origine e di destinazione.

come evitare che il mio telefono si surriscaldi

In sostanza, chiusa prende questo formato:





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

Ad esempio, il codice seguente utilizza Shutil.copy () per copiare un file denominato copia.txt da una cartella chiamata la mia cartella in un altro chiamato destinazione . Quindi rinomina il file di destinazione come nuovoFile.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 qualsiasi editor di codice di tua scelta. Puoi quindi eseguirlo utilizzando la riga di comando.

Tuttavia, puoi anche utilizzare l'ambiente di sviluppo integrato Python (IDLE) predefinito se non hai familiarità con l'esecuzione di Python tramite la riga di comando.

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

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

Tuttavia, per copiare i metadati insieme al file originale, utilizzare il pulsante 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, la sua dimensione e altri attributi.

Il follow_symlinks argomento è una dichiarazione di collegamento simbolico che consente chiusa seguire 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 a follow_symlinks . Se lo fai, Python solleva un'eccezione di sintassi.

come invertire i dati in excel

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

import shutil
shutil.copy2(sourceFile, destinationFile)

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

Usando shutil.copyfileobj è un po' diverso in quanto richiede il built-in aprire funzione. Quindi, devi leggere e scrivere binari includendo il 'rb' e 'wb' argomenti.

Vediamo come shutil.copyfileobj 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)

Notare che shutil.copyfileobj() non richiede il follow_symlinks discussione.

Però, Shutil.copyfile () funziona abbastanza allo stesso modo .copia e .copia2 fa. Differiscono solo in modo insignificante nelle loro funzioni interne.

Per usare il 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 tu il modulo utilizza due metodi incorporati per copiare i file; sistema operativo() e os.popen() metodi.

Il sistema operativo() 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 usare il sistema operativo() metodo su Windows:

import os
os.system('copy source.txt destination.txt)

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

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

Per usare il sistema operativo metodo su Linux, sostituisci copia insieme a cp :

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

Come copiare file utilizzando il metodo os.popen

Per utilizzare questo metodo, sostituisci sistema operativo() insieme a os.popen() .

Su Windows, usa:

import os
os.popen('copy source.txt destination.txt)

Come abbiamo fatto con sistema operativo() , sostituire copia insieme a cp per usare questo metodo su Linux:

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

Come copiare file con il modulo sottoprocesso di Python

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

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

Tuttavia, su Linux, usa:

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

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

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

Su Linux, sostituisci copia insieme a cp :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Tuttavia, come i metodi os, i metodi subprocess 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, sono necessari solo i percorsi completi delle directory di origine e di destinazione.

come cambiare email su instagram

Ecco come ottenere questo risultato:

sourcePath = 'C:/Users/source_directories/my_folder/copy.txt'
destinationPath = 'C:/Users/some_directories/destination_directories/newFile.txt'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())

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

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
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à di Python è un modo per migliorare le tue abilità di Python, specialmente 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.

Condividere Condividere Tweet E-mail Come creare i tuoi 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.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Pitone
Circa l'autore Idisou Omisola(94 articoli pubblicati)

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

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

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

Clicca qui per iscriverti