I denne tutorial lærer vi om Shutil-modulet i Python. Vi vil diskutere, hvordan vi kan udføre filoperationen på højt niveau, såsom at oprette en ny kopifil og arkivere den og kopiere indhold fra en fil til en anden fil ved hjælp af Python-scriptet. Lad os få en grundlæggende introduktion af Shutil-modulet.
heap-sorteringsalgoritme
Python Shutil modul
Python shutil-modulet giver mulighed for at udføre filoperationen på højt niveau. Det kan fungere med filobjektet og giver os mulighed for at kopiere og fjerne filerne. Den håndterer semantikken på lavt niveau, såsom oprettelse og lukning af filobjekter efter at have udført alle handlinger.
Arbejde med Shutil-modulet
Python shutil modul kommer med de mange indbyggede metoder. Vi vil undersøge et par vigtige metoder. For at begynde at arbejde med dette modul skal vi først importere det i vores nuværende Python-fil.
Kopier filer
Dette modul giver kopi() funktion som bruges til at kopiere data fra en fil til en anden. Filerne skal være i samme mappe, og destinationsfilen skal være skrivbar. Lad os forstå følgende syntaks.
Syntaks-
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameter:
I ovenstående syntaks -
- Det første argument er kilde, som viser stien til kildefilen.
- Det andet argument er destination, som viser stien til destinationsfilen.
- Det tredje argument er valgfrit; standardværdien for denne parameter er sand.
- Det returnerer en streng, som viser stien til den nyoprettede fil.
Lad os forstå følgende eksempel.
Eksempel -
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'))
Produktion:
Empty Folder: [] File Copied Name: ['testcompare.py']
Forklaring -
Funktionen copy() tager mappenavn som et argument. Her er metadata ikke er kopieret, vil den kopierede fil blive betragtet som den nyoprettede fil. Denne metode klonede også alle tilladelser til filen. En ting at bemærke er, at hvis destinationsfilen allerede eksisterer, vil den blive erstattet med kildefilen.
Lad os se et andet eksempel.
Eksempel - 2 hvis en destination er en adressebog
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)
Produktion:
D:Python ProjectNewFilehello.txt
Som vi har nævnt det, kopierer funktionen copy() ikke metadataene. Men vi vil bruge kopi2() funktion, som giver os mulighed for at kopiere filen inklusive dens metadata.
Eksempel - 3: Fejlhåndtering under brug af kopimetode
# 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.')
Produktion:
Source and destination represents the same file.
Copy2()-funktionen
Denne funktion ligner kopi() fungere. Den kan også kopiere indholdet af en fil til en anden, men den eneste forskel er, at den kan bevare filens metadata. Lad os forstå følgende syntaks.
Syntaks:
shutil.copy2(source, destination, *, follow_symlinks = True)
Parameter:
I ovenstående syntaks -
- Det første argument er kilde, som viser stien til kildefilen.
- Det andet argument er destination, som viser stien til destinationsfilen.
- Det tredje argument er valgfrit; standardværdien for denne parameter er sand.
- Det returnerer en streng, som viser stien til den nyoprettede fil.
Lad os forstå følgende eksempel.
Eksempel -
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)
Produktion:
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
Funktionen shutil.copyfile()
Denne metode bruges til at kopiere indholdet af kildefilen til destinationsfilen forventer metadata. Kilde og destination skal have en fil, og destinationsfil skal give skrivetilladelsen. Hvis der allerede er destinationsfil til stede, vil den blive erstattet af den nye fil ellers oprette en ny fil.
hvad er en dobbelt java
Lad os se følgende syntaks.
ordombrydning css
Syntaks:
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parametre:
I ovenstående syntaks -
- Det første argument er kilde, som viser stien til kildefilen.
- Det andet argument er destination, som viser stien til destinationsfilen.
- Det tredje argument er valgfrit; standardværdien for denne parameter er sand.
- Det returnerer en streng, som viser stien til den nyoprettede fil.
Lad os forstå følgende eksempel.
Eksempel -
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)
Produktion:
D:Python ProjectNewFilehi.txt
Funktionen shutil.copytree()
Denne metode bruges til at replikere hele mappen. Den kopierer et helt bibliotekstræ med rod ved kilden til destinationsbiblioteket. Destinationsbiblioteket må ikke allerede findes. Lad os se følgende syntaks.
Syntaks:
shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False)
Parametre:
I ovenstående syntaks:
- Det returnerer den streng, som repræsenterer stien til den nyoprettede mappe.
Eksempel -
# 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)
Produktion:
Destination path: D:Python ProjectNewFolder
shutil.rmtree()
Denne metode bruges til at slette hele mappetræet. Lad os se følgende syntaks.
Syntaks:
shutil.rmtree(path, ignore_errors=False, onerror=None)
Parameter-
I ovenstående syntaks -
Lad os forstå følgende eksempel -
Eksempel -
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)
Ovenstående kode vil fjerne den givne mappe.
Funktionen shutil.which()
Det shutil.which() funktion bruges til at få stien til et eksekverbart program, der ville blive kørt, hvis den givne cmd blev kaldt. Den finder filen i den givne sti. Lad os se følgende syntaks.
Syntaks:
shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None)
Parametre
I ovenstående syntaks -
en række objekter java
- Denne metode returnerer stien til en eksekverbar applikation.
Lad os forstå følgende eksempel.
Eksempel -
# importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating)
Produktion:
C:Pythonpython.EXE
Den vil finde den givne fil på computeren, hvis filen findes returnerer den stien til filen ellers returnerer den Ingen.