Kopiraj datoteku u Python: metoda shutil.copy(), shutil.copystat().
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
Objašnjenje koda
- 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.split
funkcija na izvornoj varijabli - Kod 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."
Objašnjenje koda
- 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
-
Redak koda #15- Govori dan, datum, mjesec, godinu i vrijeme kada je .txt datoteka (guru99) zadnji put modificirana. Koristimo modul staze da dobijemo pojedinosti 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.
-
Redak koda #17 - Radi istu stvar dajući informacije o modificiranju 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()
rezime
- Za stvaranje kopije postojeće datoteke pomoću koda shutil.copy (src,dst)
- Za kopiranje svih podataka izvorne datoteke u duplikat datoteke poput dopuštenje datoteke, vrijeme izmjene ili informacije o metapodacima korištenjem koda shutil.copystat(src,dst)