Metode Python Copy File
Python oferă funcții încorporate pentru copierea cu ușurință a fișierelor utilizând utilitarele Shell ale sistemului de operare.
Comanda următoare este utilizată pentru a copia fișierul
shutil.copy(src,dst)
Următoarea comandă este utilizată pentru a copia fișierul cu informații MetaData
shutil.copystat(src,dst)
Iată pașii pentru copierea fișierului în Python
Pasul 1) Înainte, copiem un fișier, trebuie să obținem calea către fișierul original din directorul curent. În cod -
- Declararea variabilei
- Aplicarea funcției split pe variabilă
Explicarea codului
- Mai întâi vom verifica dacă fișierul nostru "guru99.txt" există sau nu. Deoarece am creat fișierul guru99.txt mai devreme, știm că există și vom continua cu codul
- Stocăm calea fișierului în variabila „ src ” dacă fișierul dvs. există
- Odată ce obținem calea, vom separa calea și numele fișierului
- Pentru aceasta, vom folosi
path.split
funcția de divizare a variabilei sursă - Codul la executare tipărește „ numele fișierului ” și „ calea fișierului ” separat
Pasul 2) Folosim modulul Shutil pentru a crea o copie a fișierului existent. Aici obișnuiam să creăm o copie a fișierului nostru existent „guru99.txt”.
Explicarea codului
- Luați numele fișierului original „guru99.txt” și adăugați litere .bak la sfârșitul „guru99.txt.bak”. Acest nume cu extensia .bak va fi copia noastră duplicat
- Și apoi vom folosi funcția de copiere a utilității pentru a copia de la sursă la destinație
- Când rulați codul, veți vedea un fișier duplicat cu extensia .bak este creat în partea dreaptă a panoului
Pasul 3) Funcția de copiere copiază numai conținutul fișierului, dar nu alte informații. Pentru a copia metadatele asociate fișierului, permisiunea fișierului și alte informații, trebuie să utilizați funcția „ copystat ”. Înainte de a rula acest cod, trebuie să ștergem fișierul de copiere „guru99.text.bak”.
După ce ați șters fișierul și ați rulat programul, acesta va crea o copie a fișierului dvs. .txt, dar de data aceasta cu toate informațiile, cum ar fi permisiunea fișierului, timpul de modificare și informațiile despre meta-date . Puteți accesa shell-ul sistemului dvs. de operare pentru a verifica informațiile.
Iată codul
import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()
Pasul 4) Puteți prelua informațiile despre fișierul text modificat ultima dată
- Linia de cod # 15 - Indică ziua, data, luna, anul și ora când fișierul .txt (guru99) a fost modificat ultima dată. Folosim modulul cale pentru a obține detaliile timpului de modificare a fișierului și apoi vom folosi clasa de timp funcția c timp pentru a converti acest lucru într-un timp lizibil. Așa că , atunci când vom rula codul, putem vedea guru99.txt fișierul a fost modificat ultima dată pe lun, opt-1 - lea la 2018 13:35.
- Linia de cod # 17 - Face același lucru oferind informații despre modificarea fișierului, dar are un format diferit pentru a-l reprezenta. Aici folosim funcția Get Modification Time (path.getmtime ("guru99.txt")). Acum, în loc să folosim funcția c time, vom folosi funcția From Time Stamp și vom construi un obiect data-oră. La ieșire, puteți vedea detaliile timpului modificării fișierului sunt tipărite în diferite formate 2018-01-08, 13: 35: 51.334072
Iată codul
## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()
rezumat
- Pentru a crea o copie a fișierului existent utilizând codul shutil.copy (src, dst)
- Pentru a copia toate informațiile fișierului original într-un fișier duplicat, cum ar fi permisiunea fișierului, timpul de modificare sau informațiile meta-date, utilizând codul shutil.copystat (src, dst)