In diesem Tutorial lernen wir das Shutil-Modul in Python kennen. Wir werden diskutieren, wie wir den Dateivorgang auf hoher Ebene durchführen können, z. B. das Erstellen einer neuen Kopierdatei und deren Archivierung sowie das Kopieren des Inhalts einer Datei in eine andere Datei mithilfe des Python-Skripts. Lassen Sie uns eine grundlegende Einführung in das Shutil-Modul geben.
Laden Sie Autocad 2019 Englisch Mediafire herunter
Python Shutil-Modul
Das Python-Shutil-Modul bietet die Möglichkeit, den Dateivorgang auf hoher Ebene durchzuführen. Es kann mit dem Dateiobjekt arbeiten und bietet uns die Möglichkeit, Dateien zu kopieren und zu entfernen. Es verwaltet die Semantik auf niedriger Ebene, z. B. das Erstellen und Schließen von Dateiobjekten nach der Ausführung aller Vorgänge.
Funktionsweise des Shutil-Moduls
Das Python-Shutil-Modul verfügt über zahlreiche integrierte Methoden. Wir werden einige wichtige Methoden untersuchen. Um mit diesem Modul arbeiten zu können, müssen wir es zunächst in unsere aktuelle Python-Datei importieren.
Dateien kopieren
Dieses Modul bietet die Kopieren() Funktion, die zum Kopieren von Daten von einer Datei in eine andere verwendet wird. Die Dateien müssen sich im selben Verzeichnis befinden und die Zieldatei muss beschreibbar sein. Lassen Sie uns die folgende Syntax verstehen.
Syntax-
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameter:
In der obigen Syntax -
- Das erste Argument ist Quelle, das den Pfad der Quelldatei anzeigt.
- Das zweite Argument ist „Ziel“, das den Pfad der Zieldatei anzeigt.
- Das dritte Argument ist optional; Der Standardwert dieses Parameters ist true.
- Es gibt eine Zeichenfolge zurück, die den Pfad der neu erstellten Datei anzeigt.
Lassen Sie uns das folgende Beispiel verstehen.
Beispiel -
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'))
Ausgabe:
Empty Folder: [] File Copied Name: ['testcompare.py']
Erläuterung -
Die Funktion copy() verwendet den Verzeichnisnamen als Argument. Hier das Metadaten nicht kopiert wird, wird die kopierte Datei als die neu erstellte Datei betrachtet. Diese Methode hat auch alle Berechtigungen der Datei geklont. Beachten Sie Folgendes: Wenn die Zieldatei bereits vorhanden ist, wird sie durch die Quelldatei ersetzt.
Sehen wir uns ein weiteres Beispiel an.
Beispiel – 2, wenn ein Ziel ein Verzeichnis ist
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)
Ausgabe:
D:Python ProjectNewFilehello.txt
Wie bereits erwähnt, kopiert die Funktion copy() die Metadaten nicht. Aber wir werden das verwenden copy2() Funktion, die es uns ermöglicht, die Datei einschließlich ihrer Metadaten zu kopieren.
Beispiel – 3: Fehlerbehandlung bei Verwendung der Kopiermethode
# 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.')
Ausgabe:
Source and destination represents the same file.
Die Funktion copy2()
Diese Funktion ähnelt der Kopieren() Funktion. Es kann auch den Inhalt einer Datei in eine andere kopieren, der einzige Unterschied besteht jedoch darin, dass die Metadaten der Datei erhalten bleiben. Lassen Sie uns die folgende Syntax verstehen.
Syntax:
shutil.copy2(source, destination, *, follow_symlinks = True)
Parameter:
In der obigen Syntax -
- Das erste Argument ist Quelle, das den Pfad der Quelldatei anzeigt.
- Das zweite Argument ist „Ziel“, das den Pfad der Zieldatei anzeigt.
- Das dritte Argument ist optional; Der Standardwert dieses Parameters ist true.
- Es gibt eine Zeichenfolge zurück, die den Pfad der neu erstellten Datei anzeigt.
Lassen Sie uns das folgende Beispiel verstehen.
Beispiel -
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)
Ausgabe:
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
Die Funktion „shutil.copyfile()“.
Mit dieser Methode wird der Inhalt der Quelldatei bis auf die Metadaten in die Zieldatei kopiert. Quelle und Ziel müssen über eine Datei verfügen und die Zieldatei muss über die Schreibberechtigung verfügen. Wenn bereits eine Zieldatei vorhanden ist, wird diese durch die neue Datei ersetzt. Andernfalls wird eine neue Datei erstellt.
Was ist ein Doppel-Java?
Sehen wir uns die folgende Syntax an.
Syntax:
shutil.copyfile(source, destination, *, follow_symlinks = True)
Parameter:
In der obigen Syntax -
- Das erste Argument ist Quelle, das den Pfad der Quelldatei anzeigt.
- Das zweite Argument ist „Ziel“, das den Pfad der Zieldatei anzeigt.
- Das dritte Argument ist optional; Der Standardwert dieses Parameters ist true.
- Es wird eine Zeichenfolge zurückgegeben, die den Pfad der neu erstellten Datei anzeigt.
Lassen Sie uns das folgende Beispiel verstehen.
Beispiel -
MySQL einfügen in
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)
Ausgabe:
D:Python ProjectNewFilehi.txt
Die Funktion „shutil.copytree()“.
Mit dieser Methode wird das komplette Verzeichnis repliziert. Es kopiert einen gesamten Verzeichnisbaum, der an der Quelle verwurzelt ist, in das Zielverzeichnis. Das Zielverzeichnis darf nicht bereits vorhanden sein. Sehen wir uns die folgende Syntax an.
Syntax:
shutil.copytree(src, dst, symlinks = False, ignore = None, copy_function = copy2, igonre_dangling_symlinks = False)
Parameter:
In der obigen Syntax:
- Es gibt die Zeichenfolge zurück, die den Pfad des neu erstellten Verzeichnisses darstellt.
Beispiel -
# 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)
Ausgabe:
Destination path: D:Python ProjectNewFolder
Die Shutil.rmtree()
Mit dieser Methode wird der komplette Verzeichnisbaum gelöscht. Sehen wir uns die folgende Syntax an.
Syntax:
shutil.rmtree(path, ignore_errors=False, onerror=None)
Parameter-
In der obigen Syntax -
Lassen Sie uns das folgende Beispiel verstehen:
Beispiel -
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)
Der obige Code entfernt das angegebene Verzeichnis.
Die Funktion „shutil.which()“.
Der Shutil.which() Die Funktion wird verwendet, um den Pfad einer ausführbaren Anwendung abzurufen, die ausgeführt würde, wenn der angegebene cmd aufgerufen würde. Es findet die Datei im angegebenen Pfad. Sehen wir uns die folgende Syntax an.
String Concat Java
Syntax:
shutil.which(cmd, mode = os.F_OK | os.X_OK, path = None)
Parameter
In der obigen Syntax -
- Diese Methode gibt den Pfad zu einer ausführbaren Anwendung zurück.
Lassen Sie uns das folgende Beispiel verstehen.
Beispiel -
# importing shutil module import shutil # search the file cmd = 'python' # Using shutil.which() method locating = shutil.which(cmd) # Print result print(locating)
Ausgabe:
C:Pythonpython.EXE
Es findet die angegebene Datei auf dem Computer. Wenn die Datei gefunden wird, gibt es den Pfad der Datei zurück, andernfalls wird „None“ zurückgegeben.