Kopier filen inn Python: shutil.copy(), shutil.copystat() metode
Python Kopier filmetoder
Python gir innebygde funksjoner for enkel kopiering av filer ved hjelp av Operating System Shell-verktøy.
Følgende kommando brukes til å kopiere fil
shutil.copy(src,dst)
Følgende kommando brukes til å kopiere fil med metadatainformasjon
shutil.copystat(src,dst)
Hvordan kopiere en fil inn Python
Her er trinnene for å kopiere filen inn Python ved å bruke shutil copy()-metoden:
Trinn 1) Fang den opprinnelige banen i gjeldende katalog
Før vi kopierer en fil, må vi få banen til den opprinnelige filen i gjeldende katalog. I koden –
- Erklærer variabel
- Bruker delt funksjon på variabel
Kode Forklaring
- Først skal vi sjekke at "guru99.txt"-filen vår eksisterer eller ikke. Siden vi har laget guru99.txt-filen tidligere, vet vi at den eksisterer, og vi vil fortsette med koden
- Vi lagrer filbanen i variabelen "src" hvis filen din eksisterer
- Når vi har fått banen, skal vi skille banen og filnavnet
- Til det skal vi bruke splittelsen
path.split
funksjon på kildevariabel - Kode når den utføres skrives ut "filnavn"Og"filbane" separat
Trinn 2) Lag en kopi av vår eksisterende fil ved hjelp av shutil-modulen
Vi bruker Shutil Module for å lage en kopi av den eksisterende filen. Her pleide vi å lage en kopi av vår eksisterende fil "guru99.txt."
Kode Forklaring
- Ta det originale filnavnet "guru99.txt" og legg til bokstavene .bak på slutten "guru99.txt.bak". Dette navnet med .bak-utvidelsen kommer til å være vår duplikatkopi
- Og så skal vi bruke verktøyets kopieringsfunksjon for å kopiere fra kilden til destinasjonen
- Når du kjører koden, vil du se en duplikatfil med filtypen .bak opprettes på høyre side av panelet
Trinn 3) Kopier metadata knyttet til filen, filtillatelse og annen informasjon
Kopifunksjonen kopierer bare innholdet i filen, men ingen annen informasjon. Å kopiere metadata knyttet til filen, filtillatelsen og annen informasjon du må bruke "kopistat" funksjon. Før vi kjører denne koden, må vi slette kopifilen vår "guru99.text.bak".
Når du har slettet filen og kjører programmet vil det lage en kopi av .txt-filen din, men denne gangen med all informasjon som f.eks. filtillatelse, endringstid og metadatainformasjon. Du kan gå til OS-skallet for å bekrefte informasjonen.
Her er koden
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()
Trinn 4) Hent informasjonen
Du kan hente informasjonen om tekstfilen sist endret
-
Kodelinje#15- Den forteller dagen, datoen, måneden, året og klokkeslettet da .txt-filen (guru99) sist ble endret. Vi bruker banemodulen for å få informasjon om filmodifiseringstid, og så skal vi bruke tidsklasser c tidsfunksjon å konvertere det til en lesbar tid. Så når vi kjører koden, kan vi se at filen guru99.txt sist ble endret man 8. januarth klokken 13:35 2018.
-
Kodelinje#17- Den gjør det samme og gir informasjon om filmodifisering, men den har et annet format for å representere det. Her bruker vi Få funksjonen Modifikasjonstid (path.getmtime(“guru99.txt”)). Nå i stedet for å bruke c-tidsfunksjonen vi skal bruke Fra tidsstempelfunksjon og skal konstruere et dato-tidsobjekt. I utdata kan du se at detaljene for filendring skrives ut i forskjellig format 2018-01-08, 13:35:51.334072
Her er koden
# # 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()
Sammendrag
- For å lage en kopi av den eksisterende filen ved å bruke kode shutil.copy (src,dst)
- For å kopiere all informasjon fra originalfilen til duplisere fil som filtillatelse, endringstid eller metadatainformasjon ved å bruke koden shutil.copystat(src,dst)