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





