Python COPY datoteka pomoću shutil.copy (), shutil.copystat ()

Sadržaj:

Anonim

Python metode kopiranja datoteka

Python nudi ugrađene funkcije za jednostavno kopiranje datoteka pomoću uslužnih programa Shell operativnog sustava.

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)

Evo koraka za kopiranje datoteke u Pythonu

Korak 1) Prije kopiranja datoteke trebamo pronaći put do izvorne datoteke u trenutnom direktoriju. U kodu -

  1. Deklariranje varijable
  2. Primjena funkcije razdvajanja na varijablu

Objašnjenje koda

  • Prvo ćemo provjeriti postoji li naša datoteka "guru99.txt" ili ne. Budući da smo datoteku guru99.txt stvorili ranije, znamo da ona postoji i nastavit ćemo dalje s kodom
  • Stazu datoteke pohranjujemo u varijablu " src " ako vaša datoteka postoji
  • Jednom kada dobijemo put, odvojit ćemo put i ime datoteke
  • Za to ćemo koristiti path.splitfunkciju split na varijabli izvora
  • Kod izvršenja kod zasebno ispisuje " naziv datoteke " i " put datoteke "

Korak 2) Koristimo Shutil modul za stvaranje kopije postojeće datoteke. Ovdje smo stvorili kopiju naše postojeće datoteke "guru99.txt".

Objašnjenje koda

  • Uzmite izvorno ime datoteke "guru99.txt" i dodajte slova .bak na kraju "guru99.txt.bak". Ovo ime s nastavkom .bak bit će naša dvostruka kopija
  • A onda ćemo koristiti uslužnu funkciju kopiranja za kopiranje od izvora do odredišta
  • Kada pokrenete kôd, vidjet ćete dupliciranu datoteku s nastavkom .bak stvorenu na desnoj strani ploče

Korak 3) Funkcija kopiranja kopira samo sadržaj datoteke, ali ne i druge podatke. Da biste kopirali meta-podatke povezane s datotekom, dopuštenjem datoteke i ostalim podacima, morate koristiti funkciju " copystat ". Prije pokretanja ovog koda, moramo izbrisati našu kopiju datoteke "guru99.text.bak".

Jednom kada izbrišete datoteku i pokrenete program, stvorit će kopiju vaše .txt datoteke, ali ovaj put sa svim informacijama poput dopuštenja datoteke, vremena izmjene i podataka o meta-podacima . Možete provjeriti podatke u ljusci OS-a.

Ovdje je kod

import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Korak 4) Možete dohvatiti podatke o zadnjoj izmjeni tekstualne datoteke

  • Redak koda # 15 - U njemu se govori o danu, datumu, mjesecu, godini i vremenu kada je .txt datoteka (guru99) zadnji put izmijenjena. Koristimo modul puta da bismo dobili detalje o vremenu izmjene datoteke, a zatim ćemo upotrijebiti funkciju vremenskih klasa c vrijeme da to pretvorimo u čitljivo vrijeme. Dakle, kada pokrenemo kôd, možemo vidjeti datoteku guru99.txt koja je zadnji puta izmijenjena u ponedjeljak, 8. siječnja u 13:35 2018.
  • Redak koda # 17 - Radi isto što daje informacije o izmjeni datoteke, ali ima drugačiji format koji ih predstavlja. Ovdje koristimo funkciju Get Modification Time (path.getmtime ("guru99.txt")). Sada ćemo umjesto funkcije c vremena koristiti funkciju From Time Stamp i konstruirati objekt datuma. U izlazu možete vidjeti kako se detalji vremena izmjene datoteke ispisuju u različitom formatu 08.01.2018., 13.35: 51.334072

Ovdje je kod

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()

Sažetak

  • Da biste stvorili kopiju postojeće datoteke pomoću koda shutil.copy (src, dst)
  • Za kopiranje svih podataka izvorne datoteke u dvostruku datoteku, poput dozvole datoteke, vremena izmjene ili podataka o meta-podacima , upotrebom koda shutil.copystat (src, dst)