In deze tutorial leren we over de Shutil-module in Python. We zullen bespreken hoe we de bestandsbewerking op hoog niveau kunnen uitvoeren, zoals het maken van een nieuw kopieerbestand en het archiveren ervan en het kopiëren van de inhoud van het ene bestand naar het andere bestand met behulp van het Python-script. Laten we een basisintroductie van de Shutil-module houden.
beste auto's ter wereld
Python Shutil-module
De Python shutil-module biedt de mogelijkheid om de bestandsbewerking op hoog niveau uit te voeren. Het kan werken met het bestandsobject en biedt ons de mogelijkheid om de bestanden te kopiëren en te verwijderen. Het verzorgt de semantiek op laag niveau, zoals het maken en sluiten van bestandsobjecten na het uitvoeren van alle bewerkingen.
Werking van de Shutil-module
De Python shutil-module wordt geleverd met de vele ingebouwde methoden. We zullen een paar belangrijke methoden verkennen. Om met deze module te gaan werken, moeten we deze eerst in ons huidige Python-bestand importeren.
Kopieer bestanden
Deze module biedt de kopiëren() functie die wordt gebruikt om gegevens van het ene bestand naar het andere te kopiëren. De bestanden moeten zich in dezelfde map bevinden en het doelbestand moet beschrijfbaar zijn. Laten we de volgende syntaxis begrijpen.
Syntaxis-
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameter:
In de bovenstaande syntaxis -
- Het eerste argument is source, dat het pad van het bronbestand weergeeft.
- Het tweede argument is bestemming, dat het pad van het bestemmingsbestand toont.
- Het derde argument is optioneel; de standaardwaarde van deze parameter is waar.
- Het retourneert een string die het pad van het nieuw aangemaakte bestand toont.
Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
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'))
Uitgang:
Empty Folder: [] File Copied Name: ['testcompare.py']
Uitleg -
De functie copy() neemt de mapnaam als argument. Hier de metagegevens niet wordt gekopieerd, wordt het gekopieerde bestand beschouwd als het zojuist gemaakte bestand. Met deze methode worden ook alle machtigingen van het bestand gekloond. Eén ding om op te merken is dat als het doelbestand al bestaat, dit zal worden vervangen door het bronbestand.
Laten we nog een voorbeeld bekijken.
Voorbeeld - 2 als een bestemming een map is
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)
Uitgang:
D:Python ProjectNewFilehello.txt
Zoals we al hebben vermeld, kopieert de functie copy() de metagegevens niet. Maar we zullen gebruik maken van de kopie2() functie waarmee we het bestand inclusief de metadata kunnen kopiëren.
Voorbeeld - 3: Foutafhandeling tijdens het gebruik van de kopieermethode
# 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.')
Uitgang:
Source and destination represents the same file.
De copy2()-functie
Deze functie is vergelijkbaar met de kopiëren() functie. Het kan ook de inhoud van het ene bestand naar het andere kopiëren, maar het enige verschil is dat het de metagegevens van het bestand kan behouden. Laten we de volgende syntaxis begrijpen.
Syntaxis:
shutil.copy2(source, destination, *, follow_symlinks = True)
Parameter:
In de bovenstaande syntaxis -
- Het eerste argument is source, dat het pad van het bronbestand weergeeft.
- Het tweede argument is bestemming, dat het pad van het bestemmingsbestand toont.
- Het derde argument is optioneel; de standaardwaarde van deze parameter is waar.
- Het retourneert een string die het pad van het nieuw aangemaakte bestand toont.
Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
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)
Uitgang:
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
De functie shutil.copyfile().
Deze methode wordt gebruikt om de inhoud van het bronbestand naar het doelbestand te kopiëren, behalve de metagegevens. Bron en bestemming moeten een bestand hebben en het doelbestand moet schrijfrechten bieden. Als er al een doelbestand aanwezig is, wordt dit vervangen door het nieuwe bestand, anders maakt u een nieuw bestand.
wat is een dubbele Java
Laten we de volgende syntaxis bekijken.
Syntaxis:
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameters:
In de bovenstaande syntaxis -
- Het eerste argument is source, dat het pad van het bronbestand weergeeft.
- Het tweede argument is bestemming, dat het pad van het bestemmingsbestand toont.
- Het derde argument is optioneel; de standaardwaarde van deze parameter is waar.
- Het retourneert een string die het pad van het nieuw aangemaakte bestand toont.
Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
tekenreeksfuncties java
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)
Uitgang:
D:Python ProjectNewFilehi.txt
De functie shutil.copytree().
Deze methode wordt gebruikt om de volledige map te repliceren. Het kopieert een volledige directorystructuur, geworteld in de bron, naar de doelmap. De doelmap mag nog niet aanwezig zijn. Laten we de volgende syntaxis bekijken.
Syntaxis:
shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False)
Parameters:
In de bovenstaande syntaxis:
- Het retourneert de tekenreeks die het pad van de nieuw aangemaakte map vertegenwoordigt.
Voorbeeld -
# 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)
Uitgang:
Destination path: D:Python ProjectNewFolder
De shutil.rmtree()
Deze methode wordt gebruikt om de volledige directorystructuur te verwijderen. Laten we de volgende syntaxis bekijken.
Syntaxis:
shutil.rmtree(path, ignore_errors=False, onerror=None)
Parameter-
In de bovenstaande syntaxis -
Laten we het volgende voorbeeld begrijpen -
Voorbeeld -
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)
De bovenstaande code verwijdert de opgegeven map.
De shutil. Which()-functie
De shutil.welke() functie wordt gebruikt om het pad op te halen van een uitvoerbare applicatie die zou worden uitgevoerd als de gegeven cmd werd aangeroepen. Het vindt het bestand in het opgegeven pad. Laten we de volgende syntaxis bekijken.
je s t
Syntaxis:
shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None)
Parameters
In de bovenstaande syntaxis -
- Deze methode retourneert het pad naar een uitvoerbare toepassing.
Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
# importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating)
Uitgang:
C:Pythonpython.EXE
Het zal het opgegeven bestand op de computer vinden. Als het bestand wordt gevonden, wordt het pad van het bestand geretourneerd, anders wordt Geen geretourneerd.