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
Code 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.splitfüggvény a forrásváltozón - Code végrehajtáskor a következő jelenik meg: „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.
Code 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
-
Code 15. sor – Megjeleníti a .txt fájl (guru99) utolsó módosításának napját, dátumát, hónapját, évét és időpontját. A path modult használjuk a fájl módosítási idejének lekéréséhez, majd a következőt fogjuk használni: 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.
-
Code 17. sor – Ugyanazt a funkciót látja el, információt ad a fájlmódosításról, de más formátumban ábrázolja. Itt a következőt 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





