Python Copy File Methods
Python har innebygde funksjoner for enkel kopiering av filer ved hjelp av operativsystemets 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)
Her er trinnene for å kopiere filen i Python
Trinn 1) Før vi kopierer en fil, må vi få stien til den originale filen i den gjeldende katalogen. I koden -
- Erklæringsvariabel
- Bruker delt funksjon på variabel
Kode Forklaring
- Først skal vi sjekke at filen "guru99.txt" eksisterer eller ikke. Siden vi har opprettet guru99.txt-filen tidligere, vet vi at den eksisterer, og vi vil fortsette videre 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
- For det skal vi bruke split-
path.split
funksjonen på kildevariabelen - Kode når den kjøres, skriver ut " filnavn " og " filsti " separat
Trinn 2) 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 bokstaver .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 kopifunksjon til å kopiere fra kilde til destinasjonen
- Når du kjører koden, vil du se en duplikatfil med .bak-utvidelsen er opprettet på høyre side av panelet
Trinn 3) Kopifunksjon kopierer bare innholdet i filen, men ingen annen informasjon. For å kopiere metadata tilknyttet filen, filtillatelse og annen informasjon, må du bruke " copystat " -funksjonen. Før vi kjører denne koden, må vi slette kopifilen "guru99.text.bak".
Når du har slettet filen og kjørt programmet, vil den opprette en kopi av .txt-filen, men denne gangen med all informasjon som filtillatelse, endringstid og metadatainformasjon . Du kan gå til OS-skallet ditt for å bekrefte informasjonen.
Her er koden
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()
Trinn 4) Du kan hente informasjonen om tekstfilen sist endret
- Kodelinje nr. 15- Den forteller dag, dato, måned, år og tid da .txt-filen (guru99) sist ble endret. Vi bruker banemodulen for å få informasjon om filendringstidene, og så skal vi bruke tidsklassene c tidsfunksjon for å konvertere den til en lesbar tid. Så når vi kjører koden, kan vi se filen guru99.txt ble sist endret Man den 8 januar th på 13:35 2018.
- Kodelinje 17- Det gjør det samme som gir informasjon om filendring, men det har et annet format for å representere det. Her bruker vi Get Modification Time-funksjonen (path.getmtime ("guru99.txt")). Nå i stedet for å bruke c-tidsfunksjonen, skal vi bruke fra tidsstempelfunksjonen og konstruere et dato-tidsobjekt. I utdata kan du se filendringstidsdetaljer skrives ut i forskjellige format 2018-01-08, 13: 35: 51.334072
Her er koden
## 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()
Sammendrag
- For å lage en kopi av den eksisterende filen ved hjelp av koden shutil.copy (src, dst)
- For å kopiere all informasjonen i den originale filen for å duplisere filen, som filtillatelse, endringstid eller metadatainformasjon, bruker du koden shutil.copystat (src, dst)