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:
- 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 -
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 -
- 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.