Python kopēšanas failu metodes
Python nodrošina iebūvētas funkcijas failu vienkāršai kopēšanai, izmantojot operētājsistēmas čaulas utilītprogrammas.
Pēc faila kopēšanas tiek izmantota šāda komanda
shutil.copy(src,dst)
Šī komanda tiek izmantota, lai kopētu failu ar MetaData informāciju
shutil.copystat(src,dst)
Šeit ir norādītas darbības, kā kopēt failu Python
1. solis. Pirms mēs kopējam failu, mums pašreizējā direktorijā jāiegūst ceļš uz sākotnējo failu. Kodā -
- Deklarē mainīgo
- Dalītās funkcijas piemērošana mainīgajam
Kods Paskaidrojums
- Vispirms mēs pārbaudīsim, vai mūsu fails "guru99.txt" pastāv vai ne. Tā kā mēs esam izveidojuši guru99.txt failu agrāk, mēs zinām, ka tas pastāv, un mēs turpināsim turpināt darbu ar kodu
- Ja jūsu fails pastāv, mēs saglabājam faila ceļu mainīgajā " src "
- Kad esam ieguvuši ceļu, mēs nošķirsim ceļu un faila nosaukumu
- Tam mēs izmantosim sadalīšanas
path.split
funkciju avota mainīgajā - Kods kad izpildīts izdrukā " faila nosaukums " un " failu ceļš " atsevišķi
2. solis) Mēs izmantojam Shutil moduli, lai izveidotu esošā faila kopiju. Šeit mēs izmantojām, lai izveidotu mūsu esošā faila "guru99.txt" kopiju.
Kods Paskaidrojums
- Paņemiet sākotnējo faila nosaukumu "guru99.txt" un beigās pievienojiet burtus .bak "guru99.txt.bak". Šis nosaukums ar paplašinājumu .bak būs mūsu kopija
- Pēc tam mēs izmantosim utilītas kopēšanas funkciju, lai kopētu no avota uz galamērķi
- Palaidot kodu, paneļa labajā pusē redzēsit faila dublikātu ar paplašinājumu .bak
3. solis. Kopēšanas funkcija kopē tikai faila saturu, bet ne citu informāciju. Lai kopētu metadatus, kas saistīti ar failu, faila atļauju un citu informāciju, jums jāizmanto funkcija " copystat ". Pirms palaižam šo kodu, mums ir jāizdzēš kopijas fails "guru99.text.bak".
Kad esat izdzēsis failu un palaidis programmu, tas izveidos jūsu .txt faila kopiju, bet šoreiz ar visu informāciju, piemēram, faila atļauju, modifikācijas laiku un metadatu informāciju . Lai pārbaudītu informāciju, varat doties uz OS čaulu.
Šeit ir kods
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. solis. Jūs varat iegūt informāciju par teksta failu, kas pēdējo reizi mainīts
- Kodu rindiņa Nr. 15 - tā norāda dienu, datumu, mēnesi, gadu un laiku, kad .txt fails (guru99) pēdējo reizi tika modificēts. Mēs izmantojam ceļa moduli, lai iegūtu informāciju par faila modifikācijas laiku, un pēc tam mēs izmantosim laika klases c laika funkciju, lai to pārvērstu lasāmā laikā. Tātad, kad mēs palaist kodu, mēs varam redzēt fails guru99.txt pēdējās izmaiņas Mon, Jan 8 th pie 13:35 2018.
- Kodu rindiņa Nr. 17 - tā dara to pašu, sniedzot informāciju par faila modifikāciju, taču tai ir atšķirīgs formāts, lai to attēlotu. Šeit mēs izmantojam funkciju Iegūt modifikācijas laiku (path.getmtime ("guru99.txt")). Tagad tā vietā, lai izmantotu c laika funkciju, mēs izmantosim funkciju No laika zīmoga un konstruēsim datuma un laika objektu. Izejā var redzēt, ka faila modifikācijas laiks tiek izdrukāts citā formātā. 2018-01-08, 13: 35: 51.334072
Šeit ir kods
## 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()
Kopsavilkums
- Lai izveidotu esošā faila kopiju, izmantojiet kodu shutil.copy (src, dst)
- Lai kopētu visu sākotnējā faila informāciju, lai dublētu failu, piemēram, faila atļauju, modifikācijas laiku vai metadatu informāciju , izmantojiet kodu shutil.copystat (src, dst)