Ebben az oktatóanyagban megismerjük a Python Shutil modulját. Megbeszéljük, hogyan hajthatjuk végre a magas szintű fájlműveleteket, például új másolófájl létrehozását és archiválását, valamint a tartalom másolását egyik fájlból a másik fájlba a Python szkript segítségével. Nézzük a Shutil modul alapvető bemutatását.
javascript mintakód példák
Python Shutil modul
A Python shutil modul lehetővé teszi a magas szintű fájlműveletek végrehajtását. Működhet a fájlobjektummal, és lehetőséget kínál a fájlok másolására és eltávolítására. Kezeli az alacsony szintű szemantikát, például a fájlobjektumok létrehozását és bezárását az összes művelet elvégzése után.
A Shutil modul működése
A Python shutil modul számos beépített módszerrel rendelkezik. Megvizsgálunk néhány fontos módszert. A modullal való munka megkezdéséhez először importálnunk kell a jelenlegi Python-fájlunkba.
Fájlok másolása
Ez a modul biztosítja a másolat() funkció, amellyel az adatok egyik fájlból a másikba másolhatók. A fájloknak ugyanabban a könyvtárban kell lenniük, és a célfájlnak írhatónak kell lennie. Értsük meg a következő szintaxist.
Szintaxis-
shutil.copyfile(source, destination, *, follow_symlinks = True)
Paraméter:
A fenti szintaxisban -
- Az első argumentum a forrás, amely a forrásfájl elérési útját mutatja.
- A második argumentum a cél, amely a célfájl elérési útját mutatja.
- A harmadik argumentum nem kötelező; ennek a paraméternek az alapértelmezett értéke igaz.
- Egy karakterláncot ad vissza, amely az újonnan létrehozott fájl elérési útját mutatja.
Értsük meg a következő példát.
Példa -
import os import shutil # Creating a new folder in the current directory os.mkdir('javatpoint') # It will show the empty folder print('Empty Folder:', os.listdir('javatpoint')) # testcompare.py file will be copied in the javatpoint folder shutil.copy('testcompare.py', 'javatpoint') # After coping the file folder shows the file print('File Copied Name:', os.listdir('javatpoint'))
Kimenet:
Empty Folder: [] File Copied Name: ['testcompare.py']
Magyarázat -
A copy() függvény a könyvtár nevét veszi argumentumként. Itt a metaadatokat nincs másolva, a másolt fájl frissen létrehozott fájlnak minősül. Ez a módszer a fájl összes engedélyét is klónozta. Egy dolog, amit meg kell jegyeznünk, hogy ha a célfájl már létezik, a rendszer a forrásfájlra cseréli.
Lássunk egy másik példát.
Példa - 2, ha a cél egy címtár
import os import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' # In the newly created foloder destination = r'D:Python ProjectNewFile' # Storing the new path of hello.txt file dest = shutil.copy(source, destination) # Print the new path print(dest)
Kimenet:
D:Python ProjectNewFilehello.txt
Mint már említettük, a copy() függvény nem másolja a metaadatokat. De használni fogjuk a copy2() funkció, amely lehetővé teszi a fájl másolását a metaadatokkal együtt.
Példa - 3: Hibakezelés a másolási módszer használata közben
# importing shutil module import shutil # It is a source path source = r'D:Python ProjectNewFolder' # It is a destination path destination = r'D:Python ProjectNewFolder' try: shutil.copy(source, destination) print('File copied successfully.') # If the given source and path are same except shutil.SameFileError: print('Source and destination represents the same file.') # If there is no permission to write except PermissionError: print('Permission denied.') # For other errors except: print('Error occurred while copying file.')
Kimenet:
Source and destination represents the same file.
A copy2() függvény
Ez a funkció hasonló a másolat() funkció. Másolhatja az egyik fájl tartalmát a másikba, de az egyetlen különbség az, hogy meg tudja őrizni a fájl metaadatait. Értsük meg a következő szintaxist.
Szintaxis:
shutil.copy2(source, destination, *, follow_symlinks = True)
Paraméter:
A fenti szintaxisban -
- Az első argumentum a forrás, amely a forrásfájl elérési útját mutatja.
- A második argumentum a cél, amely a célfájl elérési útját mutatja.
- A harmadik argumentum nem kötelező; ennek a paraméternek az alapértelmezett értéke igaz.
- Egy karakterláncot ad vissza, amely az újonnan létrehozott fájl elérési útját mutatja.
Értsük meg a következő példát.
Példa -
import os import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' metadata = os.stat(source) print(metadata) # In the newly created foloder destination = r'D:Python ProjectNewFile' # Storing the new path of hello.txt file dest1 = shutil.copy2(source, destination) metadata = os.stat(dest1) print('After copying file') print(metadata) # Print the new path print(dest1)
Kimenet:
os.stat_result(st_mode=33206, st_ino=562949953459285, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815671, st_mtime=1622705607, st_ctime=1622705607) After copying file os.stat_result(st_mode=33206, st_ino=562949953459287, st_dev=3029671014, st_nlink=1, st_uid=0, st_gid=0, st_size=17, st_atime=1622815748, st_mtime=1622705607, st_ctime=1622706243) D:Python ProjectNewFilehello.txt
A shutil.copyfile() függvény
Ezzel a módszerrel a forrásfájl tartalmát a célfájlba másolják, amelyre várják a metaadatokat. A forrásnak és a célnak rendelkeznie kell egy fájllal, és a célfájlnak biztosítania kell az írási engedélyt. Ha már van célfájl, akkor azt lecseréli az új fájlra, ellenkező esetben új fájlt hoz létre.
mi az a dupla java
Lássuk a következő szintaxist.
Szintaxis:
shutil.copyfile(source, destination, *, follow_symlinks = True)
Paraméterek:
A fenti szintaxisban -
python konvertálja a bájtokat karakterláncokká
- Az első argumentum a forrás, amely a forrásfájl elérési útját mutatja.
- A második argumentum a cél, amely a célfájl elérési útját mutatja.
- A harmadik argumentum nem kötelező; ennek a paraméternek az alapértelmezett értéke igaz.
- Egy karakterláncot ad vissza, amely az újonnan létrehozott fájl elérési útját mutatja.
Értsük meg a következő példát.
Példa -
import shutil # hello.txt file will be copied source = r'D:Python Projectjavatpointhello.txt' # In the newly created foloder destination = r'D:Python ProjectNewFilehi.txt' # Storing the new path of hello.txt file dest1 = shutil.copyfile(source, destination) # Print the new path print(dest1)
Kimenet:
D:Python ProjectNewFilehi.txt
A shutil.copytree() függvény
Ez a módszer a teljes könyvtár replikálására szolgál. A forrásnál gyökerező teljes könyvtárfát másolja a célkönyvtárba. A célkönyvtár már nem jelenhet meg. Lássuk a következő szintaxist.
Szintaxis:
shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False)
Paraméterek:
A fenti szintaxisban:
- Azt a karakterláncot adja vissza, amely az újonnan létrehozott könyvtár elérési útját jelöli.
Példa -
# importing shutil module import shutil # It is source path src = r'D:Python Projectjavatpoint' # It is destination path dest = r'D:Python ProjectNewFolder' # Copy the content of # source to destination dest1 = shutil.copytree(src, dest) # Now we print path of newly # created file print('Destination path:', dest1)
Kimenet:
Destination path: D:Python ProjectNewFolder
A shutil.rmtree()
Ez a módszer a teljes címtárfa törlésére szolgál. Lássuk a következő szintaxist.
Szintaxis:
shutil.rmtree(path, ignore_errors=False, onerror=None)
Paraméter-
A fenti szintaxisban -
java gyűjtőkeretrendszer
Értsük meg a következő példát -
Példa -
import shutil import os # location location_dir = r'D:Python ProjectNewFile' # directory directory = r'D:Python Projectjavatpoint' # path path1 = os.path.join(location_dir, directory) # removing directory shutil.rmtree(path1)
A fenti kód eltávolítja az adott könyvtárat.
A shutil.which() függvény
A shutil.which() A függvény egy olyan végrehajtható alkalmazás elérési útját kapja meg, amely az adott cmd meghívása esetén futna. Megkeresi a fájlt a megadott útvonalon. Lássuk a következő szintaxist.
Szintaxis:
shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None)
Paraméterek
A fenti szintaxisban -
- Ez a metódus visszaadja a végrehajtható alkalmazás elérési útját.
Értsük meg a következő példát.
Példa -
# importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating)
Kimenet:
C:Pythonpython.EXE
Megkeresi az adott fájlt a számítógépen, ha megtalálja a fájlt, akkor visszaadja a fájl elérési útját, ellenkező esetben a Nincs.