Kopiraj datoteku u Python: metoda shutil.copy(), shutil.copystat().
โก Pametni saลพetak
Python kopira datoteke pomoฤu modula shutil. shutil.copy() duplicira sadrลพaj datoteke, dok shutil.copystat() takoฤer kopira dozvole, vrijeme izmjene i metapodatke. Ovdje ฤete nauฤiti obje metode s detaljnim primjerom.

Python Metode kopiranja datoteke
Python pruลพa ugraฤene funkcije za jednostavno kopiranje datoteka pomoฤu Operating usluลพnih programa System Shell.
Sljedeฤa naredba koristi se za kopiranje datoteke
shutil.copy(src,dst)
Sljedeฤa naredba koristi se za kopiranje datoteke s informacijama o metapodacima
shutil.copystat(src,dst)
Kako kopirati datoteku u Python
Evo koraka za kopiranje datoteke Python pomoฤu metode shutil copy():
Korak 1) Snimite izvorni put u trenutnom direktoriju
Prije nego ลกto kopiramo datoteku, moramo dobiti put do izvorne datoteke u trenutnom direktoriju. U kodu โ
- Deklariranje varijable
- Primjena funkcije split na varijablu
Code Objaลกnjenje
- Prvo ฤemo provjeriti postoji li naลกa datoteka "guru99.txt" ili ne. Buduฤi da smo ranije kreirali datoteku guru99.txt, znamo da postoji i nastavit ฤemo s kodom
- Put datoteke pohranjujemo u varijablu "srcโ ako vaลกa datoteka postoji
- Kada dobijemo putanju, odvojit ฤemo putanju i naziv datoteke
- Za to ฤemo koristiti split
path.splitfunkcija na izvornoj varijabli - Code kada se izvrลกi ispisuje "Naziv datoteke"A"put datotekeโ odvojeno
Korak 2) Napravite kopiju naลกe postojeฤe datoteke pomoฤu shutil modula
Koristimo Shutil modul za izradu kopije postojeฤe datoteke. Ovdje smo koristili za stvaranje kopije naลกe postojeฤe datoteke "guru99.txt."
Code Objaลกnjenje
- Uzmite originalni naziv datoteke โguru99.txtโ i dodajte slova .bak na kraju โguru99.txt.bakโ. Ovo ime s ekstenzijom .bak bit ฤe naลก duplikat
- Zatim ฤemo upotrijebiti funkciju kopiranja usluลพnog programa za kopiranje od izvora do odrediลกta
- Kada pokrenete kรดd, vidjet ฤete da se duplikat datoteke s nastavkom .bak stvara na desnoj strani ploฤe
Korak 3) Kopirajte meta-podatke povezane s datotekom, dopuลกtenje datoteke i druge informacije
Funkcija kopiranja kopira samo sadrลพaj datoteke, ali ne i druge podatke. Kopirati metapodaci povezan s datotekom, dopuลกtenje za datoteku i druge informacije koje morate koristiti โcopystatโ funkcija. Prije nego ลกto pokrenemo ovaj kod, moramo obrisati kopiju datoteke "guru99.text.bak".
Nakon ลกto izbriลกete datoteku i pokrenete program, on ฤe stvoriti kopiju vaลกe .txt datoteke, ali ovaj put sa svim informacijama poput dopuลกtenje datoteke, vrijeme izmjene i informacije o metapodacima. Moลพete otiฤi u ljusku svog OS-a da provjerite informacije.
Evo koda
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()
Korak 4) Dohvati informacije
Moลพete dohvatiti informacije o zadnjoj izmjeni tekstualne datoteke
-
Code Redak br. 15 - Prikazuje dan, datum, mjesec, godinu i vrijeme kada je .txt datoteka (guru99) zadnji put izmijenjena. Koristimo modul putanje kako bismo dobili detalje o vremenu izmjene datoteke, a zatim ฤemo koristiti vremenski razredi c vremenska funkcija pretvoriti to u ฤitljivo vrijeme. Dakle, kada pokrenemo kod, moลพemo vidjeti da je datoteka guru99.txt zadnja modificirana Pon, 8. sijeฤnjath u 13:35 2018.
-
Code Redak #17 - Radi istu stvar dajuฤi informacije o modifikaciji datoteke, ali ima drugaฤiji format za predstavljanje. Ovdje koristimo Dobijte funkciju vremena izmjene (path.getmtime(โguru99.txtโ)). Umjesto da koristimo c vremensku funkciju, koristit ฤemo se Iz funkcije Time Stamp i konstruirati objekt datuma i vremena. U izlazu moลพete vidjeti detalje o vremenu izmjene datoteke ispisane u drugom formatu 2018-01-08, 13:35:51.334072
Evo koda
# # 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()





