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 -
- Deklariranje spremenljivke
- 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.split
funkcijo 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)