logo

Shutil-Modul in Python

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:

    src -Es zeigt den Pfad des Quellverzeichnisses.Hand -Es zeigt den Pfad des Zielverzeichnisses.Symlinks (optional) -Es werden die booleschen Werte „True“ und „False“ angenommen. Es hängt davon ab, welche Metadaten der ursprünglichen Links oder Links in den neuen Baum kopiert werden.ignorieren(optional) -Standardmäßig ist es None, aber wenn das Ignorierelement übergeben wird, muss es ein Callable sein, das als Argumente empfängt. Das Verzeichnis wird von copytree() besucht.copy_function(optional) -„copy2“ ist der Standardwert dieses Parameters. Der Kopieren() Funktion kann als Parameter verwendet werden.ignore_dangling_symlinks(optional) –Dieser Parameter wird verwendet, um die Ausnahme auszulösen, wenn die Datei, auf die der Symlink zeigt, nicht vorhanden ist.
  • 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 -

    Weg -Es stellt den Dateipfad dar. Ein pfadähnliches Objekt ist entweder ein String- oder ein Byte-Objekt.ignore_errors -Die Entfernung wird ignoriert, wenn dieses Argument True ist.onerror -Wenn ignorieren_errors falsch ist, werden solche Fehler durch den Aufruf eines durch onerror angegebenen Handlers behandelt.

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 -

    cmd -Es ist eine Zeichenfolge, die die Datei darstellt.Modus -Es gibt den Dateimodus an, in dem die Methode ausgeführt werden soll.Weg -Dieser Parameter gibt den zu verwendenden Pfad an.
  • 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.