Datoteka COPY Python z uporabo shutil.copy (), shutil.copystat ()

Načini kopiranja datotek Python

Python ponuja vgrajene funkcije za enostavno kopiranje datotek s pripomočki lupine operacijskega sistema.

Naslednji ukaz se uporablja za kopiranje datoteke

shutil.copy(src,dst)

Naslednji ukaz se uporablja za kopiranje datoteke z informacijami MetaData

shutil.copystat(src,dst)

Tukaj so koraki za kopiranje datoteke v Pythonu

1. korak) Preden kopiramo datoteko, moramo dobiti pot do izvirne datoteke v trenutnem imeniku. V kodi -

  1. Deklariranje spremenljivke
  2. Uporaba funkcije deljenja na spremenljivko

Razlaga kode

  • Najprej bomo preverili, ali naša datoteka "guru99.txt" obstaja ali ne. Ker smo datoteko guru99.txt že ustvarili, vemo, da obstaja, in nadaljevali bomo s kodo
  • Če datoteka obstaja, shranimo pot do spremenljivke " src "
  • Ko dobimo pot, bomo ločili pot in ime datoteke
  • Za to bomo uporabili path.splitfunkcijo split na izvorni spremenljivki
  • Koda pri izvedbi ločeno izpiše " ime datoteke " in " pot datoteke "

2. korak) S Shutil modulom ustvarimo kopijo obstoječe datoteke. Tu smo nekoč ustvarili kopijo naše obstoječe datoteke "guru99.txt."

Razlaga kode

  • Vzemite izvirno ime datoteke "guru99.txt" in dodajte črke .bak na koncu "guru99.txt.bak". To ime s pripono .bak bo naša dvojnik
  • Nato bomo uporabili funkcijo kopiranja pripomočka za kopiranje od vira do cilja
  • Ko zaženete kodo, boste na desni strani plošče ustvarili podvojeno datoteko s pripono .bak

Korak 3) Funkcija kopiranja kopira samo vsebino datoteke, ne pa tudi drugih informacij. Če želite kopirati metapodatke, povezane z datoteko, dovoljenjem za datoteko in drugimi informacijami, morate uporabiti funkcijo " copystat ". Preden zaženemo to kodo, moramo izbrisati kopijo "guru99.text.bak".

Ko datoteko izbrišete in zaženete program, bo ustvaril kopijo datoteke .txt, vendar tokrat z vsemi informacijami, kot so dovoljenje za datoteko, čas spreminjanja in podatki o metapodatkih . Informacije lahko preverite v lupini operacijskega sistema.

Tu je koda

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

4. korak) Lahko pridobite podatke o zadnji spremenjeni besedilni datoteki

  • Številčna vrstica št. 15 - Pove dan, datum, mesec, leto in čas, ko je bila datoteka .txt (guru99) nazadnje spremenjena. Z modulom poti pridobimo podrobnosti o času spremembe datoteke, nato pa bomo s funkcijo časovnih razredov c time pretvorili v berljiv čas. Torej, ko smo teči kodo, lahko vidimo datoteke guru99.txt zadnje spremembe: Pon, 8. januar th ob 13:35 leta 2018.
  • Code Line # 17 - Naredi isto, da informacije o spreminjanju datotek, vendar ima drugačno obliko, ki jo predstavlja. Tu uporabljamo funkcijo Get Modification Time (path.getmtime ("guru99.txt")). Zdaj bomo namesto funkcije c time uporabili funkcijo From Time Stamp in sestavili objekt časovnega datuma. V izhodu lahko vidite, da so podrobnosti o času spremembe datoteke natisnjene v drugačni obliki 08.01.2018, 13.35: 51.334072

Tu je koda

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

Povzetek

  • Če želite ustvariti kopijo obstoječe datoteke s kodo shutil.copy (src, dst)
  • Če želite kopirati vse podatke izvirne datoteke v podvojene datoteke, na primer dovoljenje datoteke, čas spreminjanja ali podatke o metapodatkih, s pomočjo kode shutil.copystat (src, dst)

Zanimive Članki...