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

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

Kopiraj datoteku u Python

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

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

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

Saลพmite ovu objavu uz: