logo

Shutil-moduuli Pythonissa

Tässä opetusohjelmassa opimme Pythonin Shutil-moduulista. Keskustelemme siitä, kuinka voimme suorittaa korkean tason tiedostotoiminnon, kuten luoda uuden kopiotiedoston ja arkistoida sen ja kopioida sisällön yhdestä tiedostosta toiseen tiedostoon Python-skriptillä. Katsotaanpa Shutil-moduulin perusesittely.

abstraktio javassa

Python Shutil -moduuli

Python shutil -moduuli tarjoaa mahdollisuuden suorittaa korkean tason tiedostotoimintoja. Se voi toimia tiedostoobjektin kanssa ja tarjoaa meille mahdollisuuden kopioida ja poistaa tiedostoja. Se käsittelee matalan tason semantiikan, kuten tiedostoobjektien luomisen ja sulkemisen kaikkien toimintojen suorittamisen jälkeen.

Shutil-moduulin toiminta

Python shutil -moduulissa on monia sisäänrakennettuja menetelmiä. Tutkimme muutamia tärkeitä menetelmiä. Aloittaaksesi työskentelyn tämän moduulin kanssa, meidän on ensin tuotava se nykyiseen Python-tiedostoomme.

Kopioi tiedostot

Tämä moduuli tarjoaa kopio() toiminto, jota käytetään tietojen kopioimiseen tiedostosta toiseen. Tiedostojen on oltava samassa hakemistossa ja kohdetiedoston on oltava kirjoitettava. Ymmärretään seuraava syntaksi.

Syntaksi-

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

Parametri:

Yllä olevassa syntaksissa -

  • Ensimmäinen argumentti on lähde, joka näyttää lähdetiedoston polun.
  • Toinen argumentti on kohde, joka näyttää kohdetiedoston polun.
  • Kolmas argumentti on valinnainen; tämän parametrin oletusarvo on tosi.
  • Se palauttaa merkkijonon, joka näyttää juuri luodun tiedoston polun.

Ymmärretään seuraava esimerkki.

Esimerkki -

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

Lähtö:

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

Selitys -

Copy()-funktio ottaa hakemiston nimen argumenttina. Tässä metatiedot ei kopioida, kopioitua tiedostoa pidetään juuri luotuna. Tämä menetelmä myös kloonasi tiedoston kaikki käyttöoikeudet. Yksi huomioitava asia on, että jos kohdetiedosto on jo olemassa, se korvataan lähdetiedostolla.

Katsotaanpa toinen esimerkki.

Esimerkki - 2, jos kohde on hakemisto

 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) 

Lähtö:

 D:Python ProjectNewFilehello.txt 

Kuten olemme maininneet, copy()-toiminto ei kopioi metatietoja. Käytämme kuitenkin kopioi2() toiminto, jonka avulla voimme kopioida tiedoston ja sen metatiedot.

Esimerkki - 3: Virheiden käsittely kopiointimenetelmää käytettäessä

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

Lähtö:

 Source and destination represents the same file. 

Copy2()-funktio

Tämä toiminto on samanlainen kuin kopio() toiminto. Se voi myös kopioida tiedoston sisällön toiseen, mutta ainoa ero on se, että se voi säilyttää tiedoston metatiedot. Ymmärretään seuraava syntaksi.

Syntaksi:

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

Parametri:

Yllä olevassa syntaksissa -

  • Ensimmäinen argumentti on lähde, joka näyttää lähdetiedoston polun.
  • Toinen argumentti on kohde, joka näyttää kohdetiedoston polun.
  • Kolmas argumentti on valinnainen; tämän parametrin oletusarvo on tosi.
  • Se palauttaa merkkijonon, joka näyttää juuri luodun tiedoston polun.

Ymmärretään seuraava esimerkki.

Esimerkki -

 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) 

Lähtö:

 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 

Shutil.copyfile()-funktio

Tätä menetelmää käytetään kopioimaan lähdetiedoston sisältö kohdetiedostoon, joka odottaa metatietoja. Lähteellä ja kohteella on oltava tiedosto, ja kohdetiedoston on annettava kirjoitusoikeus. Jos kohdetiedosto on jo olemassa, se korvataan uudella tiedostolla, muuten luodaan uusi tiedosto.

arraylist java-lajittelu

Katsotaanpa seuraava syntaksi.

Syntaksi:

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

Parametrit:

Yllä olevassa syntaksissa -

  • Ensimmäinen argumentti on lähde, joka näyttää lähdetiedoston polun.
  • Toinen argumentti on kohde, joka näyttää kohdetiedoston polun.
  • Kolmas argumentti on valinnainen; tämän parametrin oletusarvo on tosi.
  • Se palauttaa merkkijonon, joka näyttää juuri luodun tiedoston polun.

Ymmärretään seuraava esimerkki.

Esimerkki -

 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) 

Lähtö:

 D:Python ProjectNewFilehi.txt 

Shutil.copytree()-funktio

Tätä menetelmää käytetään replikoimaan koko hakemisto. Se kopioi koko hakemistopuun, jonka juuret ovat lähteessä, kohdehakemistoon. Kohdehakemisto ei saa olla jo olemassa. Katsotaanpa seuraava syntaksi.

Syntaksi:

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

Parametrit:

Yllä olevassa syntaksissa:

    src -Se näyttää lähdehakemiston polun.käsi -Se näyttää kohdehakemiston polun.symbolilinkit (valinnainen) -Se vaatii Boolen arvot - True ja False. Se riippuu siitä, mitkä alkuperäisten linkkien tai linkkien metatiedot kopioidaan uuteen puuhun.ohita (valinnainen) -Oletuksena se on Ei mitään, mutta jos ohitus ohitetaan, sen on oltava kutsuttava, joka vastaanottaa argumentteinaan. Hakemistossa vierailee copytree().copy_function (valinnainen) -copy2 on tämän parametrin oletusarvo. The kopio() toimintoa voidaan käyttää parametrina.ignore_dangling_symlinks (valinnainen) -Tätä parametria käytetään poikkeuksen herättämiseen, jos symbolilinkin osoittamaa tiedostoa ei ole olemassa.
  • Se palauttaa merkkijonon, joka edustaa juuri luodun hakemiston polkua.

Esimerkki -

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

Lähtö:

prioriteettijono c++
 Destination path: D:Python ProjectNewFolder 

The shutil.rmtree()

Tätä menetelmää käytetään poistamaan koko hakemistopuu. Katsotaanpa seuraava syntaksi.

Syntaksi:

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

Parametri-

Yllä olevassa syntaksissa -

    polku -Se edustaa tiedostopolkua. Polkumainen objekti on joko merkkijono- tai tavuobjekti.ignore_errors -Poisto jätetään huomioimatta, jos tämä argumentti on tosi.virhe -Jos ignore_errors on epätosi, tällaiset virheet käsitellään kutsumalla onror-määritelmää käsittelijää.

Ymmärretään seuraava esimerkki -

Esimerkki -

 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) 

Yllä oleva koodi poistaa annetun hakemiston.

Shutil.which()-funktio

The shutil.which() -funktiota käytetään saamaan suoritettavan sovelluksen polku, joka ajettaisiin, jos annettu cmd kutsuttaisiin. Se löytää tiedoston annetulta polulta. Katsotaanpa seuraava syntaksi.

Syntaksi:

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

Parametrit

Yllä olevassa syntaksissa -

    cmd -Se on merkkijono, joka edustaa tiedostoa.tila -Se määrittää tiedoston tilan, jossa menetelmä suoritetaan.polku -Tämä parametri määrittää käytettävän polun.
  • Tämä menetelmä palauttaa polun suoritettavaan sovellukseen.

Ymmärretään seuraava esimerkki.

Esimerkki -

 # importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating) 

Lähtö:

 C:Pythonpython.EXE 

Se löytää annetun tiedoston tietokoneelta, jos tiedosto löytyy, se palauttaa tiedoston polun muuten palauttaa Ei mitään.