Kopiera filen in Python: shutil.copy(), shutil.copystat() metod
โก Smart sammanfattning
Python kopierar filer med shutil-modulen. shutil.copy() duplicerar en fils innehรฅll, medan shutil.copystat() ocksรฅ kopierar behรถrigheter, รคndringstid och metadata. Hรคr lรคr du dig bรฅda metoderna med ett steg-fรถr-steg-exempel.

Python Kopiera filmetoder
Python ger inbyggda funktioner fรถr att enkelt kopiera filer med hjรคlp av OperaTing System Shell-verktyg.
Fรถljande kommando anvรคnds fรถr att kopiera fil
shutil.copy(src,dst)
Fรถljande kommando anvรคnds fรถr att kopiera fil med metadatainformation
shutil.copystat(src,dst)
Hur man kopierar en fil i Python
Hรคr รคr stegen fรถr att kopiera filen i Python med metoden shutil copy():
Steg 1) Fรฅnga den ursprungliga sรถkvรคgen i den aktuella katalogen
Innan vi kopierar en fil mรฅste vi fรฅ sรถkvรคgen till originalfilen i den aktuella katalogen. I koden โ
- Deklarerar variabel
- Anvรคnder delad funktion pรฅ variabel
Code Fรถrklaring
- Fรถrst ska vi kontrollera att vรฅr "guru99.txt"-fil finns eller inte. Eftersom vi har skapat filen guru99.txt tidigare vet vi att den finns, och vi kommer att fortsรคtta med koden
- Vi lagrar filsรถkvรคgen i variabeln "src" om din fil finns
- Nรคr vi vรคl har fรฅtt sรถkvรคgen kommer vi att separera sรถkvรคgen och filnamnet
- Fรถr det kommer vi att anvรคnda splittringen
path.splitfunktion pรฅ kรคllvariabel - Code nรคr den kรถrs skrivs ut "filnamn"Och"sรถkvรคg" separat
Steg 2) Skapa en kopia av vรฅr befintliga fil med shutil-modulen
Vi anvรคnder Shutil Module fรถr att skapa en kopia av den befintliga filen. Hรคr brukade vi skapa en kopia av vรฅr befintliga fil "guru99.txt."
Code Fรถrklaring
- Ta det ursprungliga filnamnet "guru99.txt" och lรคgg till bokstรคverna .bak i slutet "guru99.txt.bak". Det hรคr namnet med tillรคgget .bak kommer att bli vรฅr kopia
- Och sedan kommer vi att anvรคnda verktygets kopieringsfunktion fรถr att kopiera frรฅn kรคllan till destinationen
- Nรคr du kรถr koden kommer du att se en dubblettfil med tillรคgget .bak skapas pรฅ hรถger sida av panelen
Steg 3) Kopiera metadata som รคr associerade med filen, filbehรถrighet och annan information
Kopieringsfunktionen kopierar bara innehรฅllet i filen men ingen annan information. Att kopiera metadata associerad med filen, filbehรถrighet och annan information som du mรฅste anvรคnda "copystat" funktion. Innan vi kรถr den hรคr koden mรฅste vi ta bort vรฅr kopia fil "guru99.text.bak".
Nรคr du har tagit bort filen och kรถrt programmet kommer det att skapa en kopia av din .txt-fil men den hรคr gรฅngen med all information som t.ex. filbehรถrighet, รคndringstid och metadatainformation. Du kan gรฅ till ditt OS-skal fรถr att verifiera informationen.
Hรคr รคr 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()
Steg 4) Hรคmta informationen
Du kan hรคmta informationen om den senast รคndrade textfilen
-
Code Rad 15 - Den anger dag, datum, mรฅnad, รฅr och tidpunkt dรฅ .txt-filen (guru99) senast รคndrades. Vi anvรคnder path-modulen fรถr att hรคmta information om filรคndringstidpunkten, och sedan kommer vi att anvรคnda tidsklasser c tidsfunktion fรถr att omvandla det till en lรคsbar tid. Sรฅ nรคr vi kรถr koden kan vi se att filen guru99.txt senast รคndrades den mรฅn 8 januarith klockan 13:35 2018.
-
Code Rad 17 โ Den gรถr samma sak och ger information om filmodifiering, men den har ett annat format fรถr att representera det. Hรคr anvรคnder vi Fรฅ funktionen Modifieringstid (path.getmtime(โguru99.txtโ)). Nu istรคllet fรถr att anvรคnda c-tidsfunktionen vi kommer att anvรคnda Frรฅn tidsstรคmpelfunktionen och kommer att konstruera ett datum och tid objekt. I utdata kan du se filรคndringstidsdetaljer skrivs ut i olika format 2018-01-08, 13:35:51.334072
Hรคr รคr 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()





