Copia file in Python: metodo shutil.copy(), shutil.copystat()
⚡ Riepilogo intelligente
Python Il modulo shutil copia i file. `shutil.copy()` duplica il contenuto di un file, mentre `shutil.copystat()` copia anche i permessi, l'ora di modifica e i metadati. Qui imparerai entrambi i metodi con un esempio passo passo.

Python Metodi di copia file
Python fornisce funzioni integrate per copiare facilmente i file utilizzando il formato Operautilità di System Shell.
Il seguente comando viene utilizzato per copiare il file
shutil.copy(src,dst)
Il seguente comando viene utilizzato per copiare file con informazioni sui metadati
shutil.copystat(src,dst)
Come copiare un file in Python
Ecco i passaggi per copiare il file Python utilizzando il metodo shutil copy():
Passo 1) Cattura il percorso originale nella directory corrente
Prima di copiare un file, dobbiamo ottenere il percorso del file originale nella directory corrente. Nel codice –
- Dichiarare variabile
- Applicazione della funzione di divisione sulla variabile
Code Spiegazione
- Per prima cosa controlleremo che il nostro file “guru99.txt” esista o meno. Poiché in precedenza abbiamo creato il file guru99.txt, sappiamo che esiste e procederemo ulteriormente con il codice
- Memorizziamo il percorso del file nella variabile “src"se il tuo file esiste
- Una volta ottenuto il percorso, separeremo il percorso e il nome del file
- Per questo utilizzeremo la divisione
path.splitfunzione sulla variabile sorgente - Code quando eseguito stampa “nome del file" e "percorso del file" separatamente
Passo 2) Crea una copia del nostro file esistente utilizzando il modulo shutil
Usiamo Shutil Module per creare una copia del file esistente. Qui creavamo una copia del nostro file esistente “guru99.txt”.
Code Spiegazione
- Prendi il nome del file originale “guru99.txt” e aggiungi le lettere .bak alla fine “guru99.txt.bak”. Questo nome con estensione .bak sarà la nostra copia duplicata
- E poi utilizzeremo la funzione di copia dell'utilità per copiare dall'origine alla destinazione
- Quando esegui il codice, vedrai un file duplicato con estensione .bak creato sul lato destro del pannello
Passo 3) Copia i metadati associati al file, l'autorizzazione del file e altre informazioni
La funzione Copia copia solo il contenuto del file ma nessun'altra informazione. Copiare meta-dati associato al file, all'autorizzazione del file e ad altre informazioni che devi utilizzare "copystat" funzione. Prima di eseguire questo codice, dobbiamo eliminare la nostra copia del file "guru99.text.bak".
Una volta eliminato il file ed eseguito il programma, verrà creata una copia del tuo file .txt ma questa volta con tutte le informazioni come autorizzazione del file, ora di modifica e informazioni sui metadati. Puoi andare alla shell del tuo sistema operativo per verificare le informazioni.
Ecco il codice
import os import shutil from os import path def main(): # make a duplicate of an existing file if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); #seperate the path from the filter head, tail = path.split(src) print("path:" +head) print("file:" +tail) #let's make a backup copy by appending "bak" to the name dst = src+".bak" # nowuse the shell to make a copy of the file shutil.copy(src, dst) #copy over the permissions,modification shutil.copystat(src,dst) if __name__=="__main__": main()
Passo 4) Recupera le informazioni
È possibile recuperare le informazioni sull'ultimo file di testo modificato
-
Code Riga n. 15 - Indica il giorno, la data, il mese, l'anno e l'ora in cui il file .txt (guru99) è stato modificato per l'ultima volta. Utilizziamo il modulo path per ottenere i dettagli dell'ora di modifica del file e poi useremo il classi temporali c funzione temporale per convertirlo in un tempo leggibile. Quindi, quando eseguiamo il codice, possiamo vedere il file guru99.txt in cui è stato modificato l'ultima volta lun, 8 gennaioth alle 13:35 2018.
-
Code Riga n. 17 - Fa la stessa cosa fornendo informazioni sulla modifica del file, ma ha un formato diverso per rappresentarlo. Qui usiamo Ottieni la funzione Ora di modifica (percorso.getmtime("guru99.txt")). Ora invece di usare la funzione c time useremo Dalla funzione Time Stamp e costruiremo un oggetto data/ora. Nell'output, è possibile vedere i dettagli dell'ora di modifica del file stampati in un formato diverso 2018-01-08, 13:35:51.334072
Ecco il codice
# # Example file for working with o.s path module import os from os import path import datetime from datetime import date, time, timedelta import time def main(): # Get the modification time t = time.ctime(path.getmtime("guru99.txt.bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ == "__main__": main()





