Fájl másolása Python: shutil.copy(), shutil.copystat() metódus
Python Fájlmódszerek másolása
Python beépített funkciókat biztosít a fájlok egyszerű másolásához a Operating System Shell segédprogramok.
A következő parancs a fájl másolására szolgál
shutil.copy(src,dst)
A következő parancs a metaadat-információkat tartalmazó fájl másolására szolgál
shutil.copystat(src,dst)
Hogyan másoljunk be egy fájlt Python
Itt vannak a lépések a fájl másolásához Python a shutil copy() metódussal:
Step 1) Rögzítse az eredeti elérési utat az aktuális könyvtárban
Mielőtt másolnánk egy fájlt, meg kell szereznünk 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 változóra
Kód Magyarázat
- Először is ellenőrizni fogjuk, hogy a „guru99.txt” fájlunk létezik-e vagy sem. Mivel korábban létrehoztuk a guru99.txt fájlt, tudjuk, hogy létezik, és folytatjuk a kóddal
- A fájl elérési útját a " változóban tároljuksrc” ha a fájlja létezik
- Miután megkaptuk az elérési utat, szétválasztjuk az elérési utat és a fájlnevet
- Ehhez a felosztást fogjuk használni
path.split
függvény a forrásváltozón - A kód végrehajtásakor kinyomtatja "fájl neve"És"fájl elérési út” külön-külön
Step 2) Készítsen másolatot a meglévő fájlunkról a shutil modul segítségével
A Shutil Module segítségével másolatot készítünk a meglévő fájlról. Itt a meglévő „guru99.txt” fájlunkról készítettünk másolatot.
Kód Magyarázat
- Vegyük az eredeti „guru99.txt” fájlnevet, és a „guru99.txt.bak” végéhez adjunk hozzá .bak betűket. Ez a .bak kiterjesztésű név lesz a másolatunk
- Ezután a segédprogram másolási funkcióját fogjuk használni a forrásból a célhelyre történő másoláshoz
- A kód futtatásakor a panel jobb oldalán megjelenik egy .bak kiterjesztésű másolat.
Step 3) Másolja a fájlhoz kapcsolódó metaadatokat, a fájlengedélyeket és egyéb információkat
A másolás funkció csak a fájl tartalmát másolja, más információkat nem. Másolni meta-adatok a fájlhoz, a fájlengedélyhez és az Ön által használandó egyéb információkhoz kapcsolódik "copystat” funkciót. A kód futtatása előtt törölnünk kell a „guru99.text.bak” másolt fájlunkat.
Miután törölte a fájlt és futtatta a programot, az létrehoz egy másolatot a .txt fájlról, de ezúttal minden olyan információval, mint pl. fájlengedély, módosítási idő és metaadatok. Az információk ellenőrzéséhez lépjen az operációs rendszer héjába.
Itt a kód
import os import shutil from os import path def main(): # make a duplicate of an existing file if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); #seperate the path from the filter head, tail = path.split(src) print("path:" +head) print("file:" +tail) #let's make a backup copy by appending "bak" to the name dst = src+".bak" # nowuse the shell to make a copy of the file shutil.copy(src, dst) #copy over the permissions,modification shutil.copystat(src,dst) if __name__=="__main__": main()
Step 4) Szerezze be az információkat
Lekérheti az utoljára módosított szövegfájl adatait
-
15. kódsor – Megmondja a .txt fájl (guru99) legutóbbi módosításának napját, dátumát, hónapját, évét és időpontját. Az elérési út modult használjuk, hogy megkapjuk a fájlmódosítási idő részleteit, majd használni fogjuk a időosztályok c időfüggvény hogy ezt olvasható idővé alakítsa át. Tehát a kód futtatásakor láthatjuk, hogy a guru99.txt fájlt legutóbb módosították Hétfő, január 8th 13. 35:2018-kor.
-
17. kódsor – Ugyanezt ad információt a fájl módosításáról, de más formátummal ábrázolja. Itt használjuk Get Modification Time funkció (path.getmtime(“guru99.txt”)). Most a c idő függvény használata helyett fogjuk használni Az Időbélyeg funkcióból és egy dátum-idő objektumot fog létrehozni. A kimeneten láthatja, hogy a fájlmódosítási idő részletei különböző formátumban vannak kinyomtatva 2018-01-08, 13:35:51.334072
Itt a kód
# # Example file for working with o.s path module import os from os import path import datetime from datetime import date, time, timedelta import time def main(): # Get the modification time t = time.ctime(path.getmtime("guru99.txt.bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ == "__main__": main()
Összegzésként
- A meglévő fájl másolatának létrehozásához használja a kódot shutil.copy (src,dst)
- Az eredeti fájl összes információjának másolása másodpéldányba, mint például fájlengedély, módosítási idő vagy metaadatok a shutil.copystat(src,dst) kód használatával