Kopiraj datoteku u Python: metoda shutil.copy(), shutil.copystat().

โšก Pametni saลพetak

Python kopira datoteke pomoฤ‡u modula shutil. shutil.copy() duplicira sadrลพaj datoteke, dok shutil.copystat() takoฤ‘er kopira dozvole, vrijeme izmjene i metapodatke. Ovdje ฤ‡ete nauฤiti obje metode s detaljnim primjerom.

  • ๐Ÿ“‹ shutil.copy(): shutil.copy(src, dst) kopira sadrลพaj datoteke na novo odrediลกte.
  • ๐Ÿ—‚๏ธ shutil.copystat(): shutil.copystat(src, dst) takoฤ‘er kopira dozvole, vrijeme i metapodatke.
  • ๐Ÿค– Pomoฤ‡ umjetne inteligencije: Alati umjetne inteligencije poput Copilota trenutno generiraju kod za kopiranje shutila.

Kopiraj datoteku u Python

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

Pitanja i odgovori

Uvezite shutil, a zatim pozovite shutil.copy(src, dst) za kopiranje sadrลพaja datoteke. Koristite shutil.copystat() za kopiranje i njenih metapodataka.

shutil.copystat(src, dst) kopira dozvole datoteke, vrijeme izmjene i metapodatke na odrediลกte, ali ne i njezin sadrลพaj.

shutil.copy() kopira sadrลพaj i dozvole, dok shutil.copy2() takoฤ‘er ฤuva metapodatke poput vremenskih oznaka. Koristite copy2() za ฤuvanje vremena izmjene.

shutil.copy() prihvaฤ‡a odrediลกni direktorij i kopira dozvole; shutil.copyfile() treba punu putanju datoteke i kopira samo sadrลพaj.

Koristite shutil.copytree(src, dst) za rekurzivno kopiranje cijelog direktorija i njegovog sadrลพaja. Odrediลกna mapa ne smije veฤ‡ postojati.

AI asistenti poput GitHub Copilota automatski dovrลกavaju pozive shutil.copy() i copystat() te predlaลพu copy2() ili copytree() za vaลก sluฤaj.

Da. Alati pokretani umjetnom inteligencijom generiraju rutine sigurnosne kopije, odabiru pravu metodu zatvaranja i dodaju provjere postojanja prije kopiranja datoteka ili mapa.

Koristite os.path.getmtime(path) za dobivanje vremenske oznake, a zatim je pretvorite pomoฤ‡u time.ctime() ili datetime.fromtimestamp() za ฤitljiv datum.

Saลพmite ovu objavu uz: