Articles

Kopieren einer Datei in Python

In unseren vorherigen Tutorials haben wir einige Python-Dateioperationen wie Lesen, Schreiben und Löschen gelernt. Lassen Sie uns in diesem Tutorial lernen, eine Datei in Python zu kopieren.

Wir können eine Datei in Python mit verschiedenen Methoden unter den unten genannten Modulen kopieren,

  • shutil Modul
  • os Modul
  • subprocess Modul

In diesem Tutorial , wir werden lernen, die verschiedenen Methoden zu verwenden, die von den oben genannten Modulen zur Verfügung gestellt sind, um eine Datei in Python zu kopieren.

1. shutil-Modul zum Kopieren einer Datei in Python

Das shutil -Modul bietet einige benutzerfreundliche Methoden, mit denen wir eine Datei in Python entfernen und kopieren können. Schauen wir uns die verschiedenen Methoden an, die in diesem Modul definiert sind und speziell zum Kopieren verwendet werden.

1. copyfileobj()

Die copyfileobj() Methode kopiert den Inhalt der Quelldatei in die Zieldatei mit ihren jeweiligen Dateiobjekten. Schauen wir uns den folgenden Code an,

import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )

Hinweis: Die Dateiobjekte sollten sowohl für die jeweilige Quell- als auch für die Zieldatei auf die 0-Positionen (Startposition) zeigen, um den gesamten Inhalt zu kopieren.

2. copyfile()

Die copyfile() Methode kopiert den Inhalt von der Quelle in die Zieldatei unter Verwendung der Dateipfade. Es gibt den Zieldateipfad zurück. Der Zieldateipfad muss beschreibbar sein, da sonst eine OSError-Ausnahme auftreten würde.

import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )

Es ist zu beachten, dass die Methode nur die Verwendung von Dateipfaden und nicht von Verzeichnissen zulässt.

3. copy()

Diese Methode kopiert die Quelldatei in die Zieldatei oder das Zielverzeichnis. Im Gegensatz zu copyfile() erlaubt die Methode copy() die Verwendung des Zielverzeichnisses als Argument und kopiert auch die Dateiberechtigungen. copy() gibt den Pfad zur Zieldatei nach dem Kopieren des Inhalts zurück.

import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')

Eine Datei mit dem Namen ‘file.txt‘ wird im Zielziel mit allen Inhalten und Berechtigungen erstellt, die aus ‚/ Users /test /file kopiert wurden.txt‘.

4. copy2()

Die copy2() Methode wird genauso verwendet wie die copy() Methode. Sie funktionieren auch auf die gleiche Weise, außer dass copy2() auch die Metadaten aus der Quelldatei kopiert.

import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')

2. os-Modul zum Kopieren einer Datei in Python

1. popen()

Die popen() Methode erstellt eine Pipe zum Befehl cmd. Die Methode gibt ein Dateiobjekt zurück, das mit der cmd-Pipe verbunden ist. Schauen Sie sich den folgenden Code an,

#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )

Mit dieser Methode können wir nicht nur Dateien kopieren, sondern auch andere reguläre Befehle ausführen.

2. system()

Die system() Methode ruft direkt ein Befehlsargument in einer Subshell auf und führt es aus. Der Rückgabewert hängt vom Betriebssystem ab, auf dem das Programm ausgeführt wird. Für Linux ist es der Exit-Status, während es für Windows der Rückgabewert der System-Shell ist.

#for Linuximport osos.system(' cp src.txt targ.txt' )
#for Windowsimport osos.system(' copy src.txt targ.txt' )

3. Unterprozessmodul zum Kopieren einer Datei in Python

1. call()

Die call() Methode ähnlich os.system() ruft den als Argument an die Funktion übergebenen Befehl direkt auf oder führt ihn aus.

# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)