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 –

  1. Változó deklarálása
  2. Split függvény alkalmazása változóra

Másoljon be egy fájlt Python

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.

Másoljon be egy fájlt Python

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.

Másoljon be egy fájlt Python

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.

Másoljon be egy fájlt Python

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

Másoljon be egy fájlt Python

  • 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