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 –

  1. Deklariranje varijable
  2. Primjena funkcije split na varijablu

Kopiraj datoteku u Python

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."

Kopiraj datoteku u Python

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".

Kopiraj datoteku u Python

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.

Kopiraj datoteku u Python

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

Kopiraj datoteku u Python

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