logo

Shutil-modul i Python

I denne opplæringen vil vi lære om Shutil-modulen i Python. Vi vil diskutere hvordan vi kan utføre filoperasjonen på høyt nivå som å lage en ny kopifil og arkivere den og kopiere innhold fra én fil til en annen fil ved hjelp av Python-skriptet. La oss få en grunnleggende introduksjon av Shutil-modulen.

c struktur i struktur

Python Shutil-modul

Python shutil-modulen gir mulighet for å utføre filoperasjonen på høyt nivå. Den kan operere med filobjektet og gir oss muligheten til å kopiere og fjerne filene. Den håndterer semantikken på lavt nivå som å lage og lukke filobjekter etter å ha utført alle operasjoner.

Arbeid med Shutil-modulen

Python shutil-modulen kommer med de mange innebygde metodene. Vi vil utforske noen viktige metoder. For å begynne å jobbe med denne modulen, må vi først importere den i vår nåværende Python-fil.

Kopier filer

Denne modulen gir kopiere() funksjon som brukes til å kopiere data fra en fil til en annen. Filene må være i samme katalog og målfilen må være skrivbar. La oss forstå følgende syntaks.

Syntaks-

 shutil.copyfile(source, destination, *, follow_symlinks = True) 

Parameter:

I syntaksen ovenfor -

  • Det første argumentet er kilde som viser banen til kildefilen.
  • Det andre argumentet er destinasjon som viser banen til destinasjonsfilen.
  • Det tredje argumentet er valgfritt; standardverdien for denne parameteren er sann.
  • Den returnerer en streng som viser banen til den nyopprettede filen.

La oss 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')) 

Produksjon:

 Empty Folder: [] File Copied Name: ['testcompare.py'] 

Forklaring -

Kopier()-funksjonen tar katalognavn som et argument. Her er metadata ikke er kopiert, vil den kopierte filen betraktes som den nyopprettede filen. Denne metoden klonet også all-tillatelsen til filen. En ting å merke seg er at hvis målfilen allerede eksisterer, vil den bli erstattet med kildefilen.

La oss se et annet eksempel.

Eksempel - 2 hvis en destinasjon er en katalog

 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) 

Produksjon:

 D:Python ProjectNewFilehello.txt 

Som vi har nevnt det, kopierer ikke copy()-funksjonen metadataene. Men vi vil bruke kopi2() funksjon som lar oss kopiere filen inkludert dens metadata.

Eksempel - 3: Feilhåndtering ved bruk av kopieringsmetode

 # 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.') 

Produksjon:

 Source and destination represents the same file. 

Kopier2()-funksjonen

Denne funksjonen ligner på kopiere() funksjon. Den kan også kopiere innholdet i en fil til en annen, men den eneste forskjellen er at den kan bevare filens metadata. La oss forstå følgende syntaks.

Syntaks:

 shutil.copy2(source, destination, *, follow_symlinks = True) 

Parameter:

I syntaksen ovenfor -

  • Det første argumentet er kilde som viser banen til kildefilen.
  • Det andre argumentet er destinasjon som viser banen til destinasjonsfilen.
  • Det tredje argumentet er valgfritt; standardverdien for denne parameteren er sann.
  • Den returnerer en streng som viser banen til den nyopprettede filen.

La oss 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) 

Produksjon:

 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 

Funksjonen shutil.copyfile()

Denne metoden brukes til å kopiere innholdet i kildefilen til målfilen forventer metadata. Kilde og mål må ha en fil og målfil må gi skrivetillatelse. Hvis en målfil allerede er til stede, vil den bli erstattet av den nye filen ellers opprette en ny fil.

hva er dobbel java

La oss se følgende syntaks.

ordbryting css

Syntaks:

 shutil.copyfile(source, destination, *, follow_symlinks = True) 

Parametere:

I syntaksen ovenfor -

  • Det første argumentet er kilde som viser banen til kildefilen.
  • Det andre argumentet er destinasjon som viser banen til destinasjonsfilen.
  • Det tredje argumentet er valgfritt; standardverdien for denne parameteren er sann.
  • Den returnerer en streng som viser banen til den nyopprettede filen.

La oss 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) 

Produksjon:

 D:Python ProjectNewFilehi.txt 

Funksjonen shutil.copytree()

Denne metoden brukes til å replikere hele katalogen. Den kopierer et helt katalogtre med rot ved kilden til målkatalogen. Destinasjonskatalogen må ikke allerede finnes. La oss se følgende syntaks.

Syntaks:

 shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False) 

Parametere:

I syntaksen ovenfor:

    src -Den viser banen til kildekatalogen.hånd -Den viser banen til destinasjonskatalogen.symbolkoblinger (valgfritt) -Den tar de boolske verdiene - True and False. Det avhenger av hvilke metadata for originale lenker eller lenker som vil bli kopiert til det nye treet.ignorer (valgfritt) -Som standard er det Ingen, men Hvis ignoreringen er bestått, må den være en callable som mottar som argumenter. Katalogen besøkes av copytree().kopifunksjon (valgfritt) -Copy2 er standardverdien for denne parameteren. De kopiere() funksjon kan brukes som parameter.ignore_dangling_symlinks (valgfritt) -Denne parameteren brukes til å øke unntaket hvis filen pekt av symbollink ikke eksisterer.
  • Den returnerer strengen som representerer banen til den nyopprettede katalogen.

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) 

Produksjon:

 Destination path: D:Python ProjectNewFolder 

shutil.rmtree()

Denne metoden brukes til å slette hele katalogtreet. La oss se følgende syntaks.

Syntaks:

 shutil.rmtree(path, ignore_errors=False, onerror=None) 

Parameter-

I syntaksen ovenfor -

    sti -Den representerer filbanen. Et banelignende objekt er enten et streng- eller byteobjekt.ignore_errors -Fjerningen vil bli ignorert hvis dette argumentet er sant.en feil -Hvis ignore_errors er falsk, håndteres slike feil ved å kalle en behandler spesifisert av onerror.

La oss 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) 

Koden ovenfor vil fjerne den gitte katalogen.

Funksjonen shutil.which()

De shutil.which() funksjonen brukes til å få banen til et kjørbart program som ville blitt kjørt hvis den gitte cmd ble kalt. Den finner filen i den angitte banen. La oss se følgende syntaks.

Syntaks:

 shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None) 

Parametere

I syntaksen ovenfor -

mysql oppdatering bli med
    cmd -Det er streng som representerer filen.modus -Den spesifiserer filmodusen i hvilken metode skal utføres.sti -Denne parameteren spesifiserer banen som skal brukes.
  • Denne metoden returnerer banen til en kjørbar applikasjon.

La oss 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) 

Produksjon:

 C:Pythonpython.EXE 

Den vil finne den gitte filen på datamaskinen, hvis filen blir funnet returnerer den banen til filen ellers returnerer ingen.