Python másolási fájlmódszerek
A Python beépített funkciókat biztosít a fájlok egyszerű másolásához az Operációs Rendszer Shell segédprogramok segítségével.
A következő parancsot a fájl másolásához használják
shutil.copy(src,dst)
A következő parancsot használjuk a Fájl másolása a MetaData információkkal elemre
shutil.copystat(src,dst)
A fájl Python másolásának lépései:
1. lépés: Mielőtt másolunk egy fájlt, meg kell kapnunk az eredeti fájl elérési útját az aktuális könyvtárban. A kódban -
- Változó deklarálása
- Split függvény alkalmazása a változóra
Kód Magyarázat
- Először ellenőrizni fogjuk, hogy létezik-e a "guru99.txt" fájlunk. Mivel korábban létrehoztuk a guru99.txt fájlt, tudjuk, hogy létezik, és tovább folytatjuk a kódot
- A fájl elérési útját az " src " változóban tároljuk, ha a fájl létezik
- Amint megkapjuk az elérési utat, elválasztjuk az elérési utat és a fájl nevét
- Ehhez a split
path.split
függvényt fogjuk használni a forrásváltozón - A végrehajtáskor a " fájlnév " és a " fájlútvonal " külön nyomtatja ki
2. lépés: A Shutil Modul segítségével létrehozzuk a meglévő fájl másolatát. Itt készítettünk egy meglévő "guru99.txt" fájl másolatát.
Kód Magyarázat
- Vegyük az eredeti "guru99.txt" fájlnevet, és a "guru99.txt.bak" végén adjuk hozzá a .bak betűket. Ez a .bak kiterjesztésű név lesz a másolatunk
- Ezután a segédprogram másolási funkciójával fogunk másolni a forrásból a rendeltetési helyre
- A kód futtatásakor a panel jobb oldalán egy duplikált fájl jön létre .bak kiterjesztéssel
3. lépés: A Másolás funkció csak a fájl tartalmát másolja, más információt azonban nem. A fájlhoz társított metaadatok , fájlengedélyek és egyéb információk másolásához a " copystat " funkciót kell használnia . Mielőtt ezt a kódot futtatnánk, törölnünk kell a "guru99.text.bak" fájlunkat.
Miután törölte a fájlt és futtatta a programot, létrehoz egy másolatot a .txt fájlból, de ezúttal minden olyan információval együtt, mint a fájlengedély, a módosítási idő és a metaadatok . Az információk ellenőrzéséhez az operációs rendszer shelljébe léphet.
Itt van a kód
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. lépés) Az utoljára módosított szövegfájlról tudhatja meg az információkat
- 15. kódsor - Megmondja azt a napot, dátumot, hónapot, évet és időpontot, amikor a .txt fájl (guru99) utoljára módosult. Az elérési út modul segítségével megkapjuk a fájl módosítási idejének részleteit, majd a c time time osztályt fogjuk használni , hogy ezt olvasható idővé alakítsuk át. Tehát amikor futtatja a kódot, láthatjuk a fájl guru99.txt utolsó módosítása Mon, január 8 th at 13:35 2018.
- 17. kódsor - Ugyanazt csinálja, amely információt nyújt a fájlmódosításról, de más formátumú a képviseletére. Itt használjuk a Modifikációs idő beolvasása funkciót (path.getmtime ("guru99.txt")). Most a c idő függvény használata helyett az Időbélyegző funkciót fogjuk használni, és egy dátum és idő objektumot fogunk létrehozni. A kimenetben láthatja, hogy a fájl módosításának részletei különböző formátumban vannak kinyomtatva 2018-01-08, 13: 35: 51.334072
Itt van a kód
## 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()
Összegzés
- A létező fájl másolatának létrehozásához használja a shutil.copy kódot (src, dst).
- Az eredeti fájl összes információjának másolása fájlként, például fájlengedély, módosítási idő vagy metaadatok a shutil.copystat (src, dst) kóddal