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()





