„Python“ kopijavimo failų metodai
„Python“ teikia integruotas funkcijas, kad būtų galima lengvai nukopijuoti failus naudojant „Operacinės sistemos apvalkalo“ komunalines paslaugas.
Ši komanda naudojama kopijuoti failą
shutil.copy(src,dst)
Ši komanda naudojama kopijuoti failą su „MetaData Information“
shutil.copystat(src,dst)
Čia pateikiami veiksmai, kaip nukopijuoti failą „Python“
1 žingsnis) Prieš kopijuodami failą, turime gauti kelią į pradinį failą dabartiniame kataloge. Kode -
- Deklaruojamas kintamasis
- Skilties funkcijos taikymas kintamajam
Kodo paaiškinimas
- Pirmiausia patikrinsime, ar egzistuoja failas „guru99.txt“. Kadangi guru99.txt failą sukūrėme anksčiau, žinome, kad jis egzistuoja, ir toliau tęsime kodą
- Jei failas egzistuoja, failo kelią saugome kintamajame „ src “
- Gavę kelią, skirsime kelią ir failo pavadinimą
- Tam mes naudosime padalijimo
path.split
funkciją šaltinio kintamajame - Vykdant kodas atskirai išspausdina „ failo pavadinimą “ ir „ failo kelią “
2 žingsnis) Mes naudojame „Shutil“ modulį, kad sukurtume esamo failo kopiją. Čia mes sukūrėme esamo failo „guru99.txt“ kopiją.
Kodo paaiškinimas
- Paimkite originalų failo pavadinimą „guru99.txt“ ir pabaigoje „guru99.txt.bak“ pridėkite raides .bak. Šis vardas su plėtiniu .bak bus mūsų kopija
- Tada mes naudosime naudingosios programos kopijavimo funkciją, norėdami kopijuoti iš šaltinio į tikslą
- Kai paleisite kodą, dešinėje skydelio pusėje pamatysite failo dublikatą su .bak plėtiniu
3 žingsnis) Kopijavimo funkcija nukopijuoja tik failo turinį, bet jokios kitos informacijos. Norėdami nukopijuoti metaduomenis, susietus su byla, failo leidimu ir kita informacija, turite naudoti funkciją „ copystat “. Prieš paleisdami šį kodą, turime ištrinti kopijavimo failą „guru99.text.bak“.
Kai ištrinsite failą ir paleisite programą, jis sukurs jūsų .txt failo kopiją, tačiau šį kartą su visa informacija, tokia kaip failo leidimas, modifikavimo laikas ir metaduomenų informacija . Norėdami patikrinti informaciją, galite eiti į savo OS apvalkalą.
Čia yra kodas
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 žingsnis) Galite gauti informaciją apie paskutinį kartą modifikuotą teksto failą
- Kodo eilutė Nr. 15 - ji nurodo dieną, datą, mėnesį, metus ir laiką, kada .txt failas (guru99) buvo paskutinį kartą modifikuotas. Norėdami gauti išsamią failo modifikavimo laiko informaciją, mes naudojame kelio modulį, tada naudosime laiko klasės c laiko funkciją, kad paverstume ją skaitomu laiku. Taigi, kai paleidžiame kodą, galime pamatyti, kad failas guru99.txt paskutinį kartą modifikuotas pirmadienį, sausio 8 d. , 13:35 2018 m.
- Kodo eilutė Nr. 17 - ji daro tą patį dalyką, pateikdama informaciją apie failo modifikavimą, tačiau ji turi kitokį formatą, kad tai reprezentuotų. Čia mes naudojame funkciją Gauti modifikavimo laiką (path.getmtime ("guru99.txt")). Užuot naudoję „c time“ funkciją, naudosime „ From Time Stamp“ funkciją ir sukursime datos ir laiko objektą. Išvestyje galite pamatyti, kad failo modifikavimo laikas išspausdintas skirtingu formatu. 2018-01-08, 13: 35: 51.334072
Čia yra kodas
## 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()
Santrauka
- Norėdami sukurti esamo failo kopiją naudodami kodą shutil.copy (src, dst)
- Norėdami nukopijuoti visą pirminio failo informaciją į failo kopiją, pvz., Failo leidimą, modifikavimo laiką ar metaduomenų informaciją , naudokite kodą shutil.copystat (src, dst)