Articles

Copiare un file in Python

Nei nostri tutorial precedenti, abbiamo imparato alcune operazioni sui file Python come la lettura, la scrittura e l’eliminazione. Impariamo a copiare un file in Python in questo tutorial.

E ‘ possibile copiare un file in Python utilizzando diversi metodi sottoelencate moduli,

  • shutil modulo
  • os modulo
  • subprocess modulo

In questo tutorial ci accingiamo a imparare a usare le diverse modalità previste dalla sopra i moduli per copiare un file in Python.

1. modulo shutil per copiare un file in Python

Il moduloshutil fornisce alcuni metodi facili da usare con cui possiamo rimuovere e copiare un file in Python. Diamo un’occhiata ai diversi metodi definiti in questo modulo specificamente utilizzati per la copia.

1. copyfileobj()

Il metodo copyfileobj() copia il contenuto del file sorgente nel file di destinazione utilizzando i rispettivi oggetti file. Diamo un’occhiata al codice qui sotto,

import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )

Nota: che gli oggetti file dovrebbero puntare alle posizioni 0 (posizione iniziale) sia per i rispettivi file di origine che di destinazione, per copiare l’intero contenuto.

2. copyfile()

Il metodo copyfile() copia il contenuto dall’origine al file di destinazione utilizzando i percorsi dei file. Restituisce il percorso del file di destinazione. Il percorso del file di destinazione deve essere scrivibile altrimenti si verificherebbe un’eccezione OSerror.

import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )

Va tenuto presente che il metodo consente solo l’uso di percorsi di file e non di directory.

3. copy()

Questo metodo copia il file sorgente nel file di destinazione o nella directory di destinazione. A differenza dicopyfile(), il metodocopy() consente l’uso della directory di destinazione come argomento e copia anche i permessi del file. copy() restituisce il percorso del file di destinazione dopo aver copiato il contenuto.

import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')

Un file chiamato ‘file.txt ‘viene creato nella destinazione di destinazione con tutti i contenuti e le autorizzazioni copiati da’ / Users/test / file.txt”.

4. copy2()

Il metodo copy2() viene utilizzato esattamente allo stesso modo del metodo copy(). Funzionano anche allo stesso modo, tranne per il fatto che copy2() copia anche i metadati dal file sorgente.

import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')

2. modulo os per copiare un file in Python

1. popen()

Il popen() metodo crea una pipe per il comando, cmd. Il metodo restituisce un oggetto file collegato alla pipe cmd. Dai un’occhiata al codice qui sotto,

#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )

Con questo metodo, non solo possiamo copiare i file ma anche eseguire altri comandi regolari.

2. system()

Il metodo system() chiama ed esegue direttamente un argomento di comando in una subshell. Il suo valore di ritorno dipende dal sistema operativo che esegue il programma. Per Linux, è lo stato di uscita, mentre per Windows è il valore restituito dalla shell di sistema.

#for Linuximport osos.system(' cp src.txt targ.txt' )

#for Windowsimport osos.system(' copy src.txt targ.txt' )

3. subprocess Module per copiare un file in Python

1. call ()

Il metodocall()simile aos.system() chiama o esegue direttamente il comando passato come argomento alla funzione.

# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)