Kopier fil ind Python: shutil.copy(), shutil.copystat() metode
Python Kopier filmetoder
Python giver indbyggede funktioner til nemt at kopiere filer ved hjælp af Operating System Shell-værktøjer.
Følgende kommando bruges til at kopiere fil
shutil.copy(src,dst)
Følgende kommando bruges til at kopiere fil med metadataoplysninger
shutil.copystat(src,dst)
Sådan kopieres en fil ind Python
Her er trinene til at kopiere filen ind Python ved at bruge shutil copy() metoden:
Trin 1) Indfang den oprindelige sti i den aktuelle mappe
Før vi kopierer en fil, skal vi hente stien til den originale fil i den aktuelle mappe. I koden –
- Erklærer variabel
- Anvendelse af splitfunktion på variabel
Kode Forklaring
- Først skal vi kontrollere, at vores "guru99.txt" fil eksisterer eller ej. Da vi har oprettet filen guru99.txt tidligere, ved vi, at den eksisterer, og vi vil fortsætte med koden
- Vi gemmer filstien i variablen "src" hvis din fil eksisterer
- Når vi har fået stien, skal vi adskille stien og filnavnet
- Til det kommer vi til at bruge opdelingen
path.split
funktion på kildevariabel - Koden udskrives, når den udføres "filnavn"Og"filsti" hver for sig
Trin 2) Opret en kopi af vores eksisterende fil ved hjælp af shutil-modulet
Vi bruger Shutil Module til at lave en kopi af den eksisterende fil. Her plejede vi at oprette en kopi af vores eksisterende fil "guru99.txt."
Kode Forklaring
- Tag det originale filnavn "guru99.txt" og tilføj bogstaverne .bak i slutningen "guru99.txt.bak". Dette navn med .bak-udvidelsen bliver vores dubletkopi
- Og så skal vi bruge hjælpeprogrammets kopifunktion til at kopiere fra kilden til destinationen
- Når du kører koden, vil du se en dubletfil med filtypenavnet .bak er oprettet på højre side af panelet
Trin 3) Kopiér metadata knyttet til filen, filtilladelse og andre oplysninger
Kopifunktionen kopierer kun indholdet af filen, men ingen anden information. At kopiere metadata forbundet med filen, filtilladelsen og andre oplysninger, du skal bruge "kopistat" funktion. Før vi kører denne kode, skal vi slette vores kopifil "guru99.text.bak".
Når du har slettet filen og kørt programmet, vil det oprette en kopi af din .txt-fil, men denne gang med alle oplysninger som f.eks. filtilladelse, ændringstidspunkt og metadataoplysninger. Du kan gå til din OS-skal for at bekræfte oplysningerne.
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()
Trin 4) Hent oplysningerne
Du kan hente oplysningerne om den sidst ændrede tekstfil
-
Kodelinje#15- Den fortæller dagen, datoen, måneden, året og klokkeslættet, hvor .txt-filen (guru99) sidst blev ændret. Vi bruger stimodulet til at få oplysninger om filændringstid, og så skal vi bruge tidsklasser c tidsfunktion at konvertere det til en læsbar tid. Så når vi kører koden, kan vi se filen guru99.txt sidst blev ændret den man, 8 janth 13:35 2018.
-
Kodelinje#17- Det gør det samme, der giver information om filændringer, men det har et andet format til at repræsentere det. Her bruger vi Få funktionen Ændringstid (path.getmtime(“guru99.txt”)). I stedet for at bruge c-tidsfunktionen vil vi nu bruge Fra tidsstempelfunktionen og vil konstruere et dato-tidsobjekt. I output kan du se detaljer om filændringstid udskrives i andet 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()
Resumé
- Brug kode for at oprette en kopi af den eksisterende fil shutil.copy (src,dst)
- For at kopiere alle oplysningerne fra den originale fil til at kopiere fil som filtilladelse, ændringstidspunkt eller metadataoplysninger ved at bruge koden shutil.copystat(src,dst)