Kopieren einer Datei in Python

Zuletzt aktualisiert am Sonntag 13. März 2022

Python Copy File

Wir können eine Datei in Python mit verschiedenen Methoden kopieren

Verwenden von shutil

copyfileobj()

  • Die copyfileobj() Methode kopiert den Inhalt der Quelldatei mithilfe der entsprechenden Dateiobjekte in die Zieldatei.
	import shutil
srcDatei =open('a.txt', 'rb')
tarDatei = open('b.txt' , 'wb')
shutil.copyfileobj( srcDatei  , tarDatei )
	

copyfile()

  • Die copyfile() Methode kopiert den Inhalt aus der Quelldatei in die Zieldatei unter Verwendung der Dateipfade. Es gibt den Zieldateipfad zurück.

Python File Copy

  • Der Zieldateipfad muss beschreibbar sein, anderern als OSerror Ausnahme würde eine OSerror Ausnahme auftreten.
	import shutil
shutil.copyfile( 'src.txt' , 'tar.txt' )
	

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 nach dem Kopieren des Inhalts den Pfad zur Zieldatei zurück.
	import shutil
shutil.copy('/User/text.txt', '/User/target/abc')
	

copy2()

  • Die copy2() Methode wird genauso verwendet wie die copy() Methode. Sie funktionieren auch auf die gleiche Weise, mit der Ausnahme, dass copy2() auch die Metadaten aus der Quelldatei kopiert.
	import shutil
shutil.copy2('/User/text.txt', '/User/target/abc')
	

Verwenden des OS Module

system()

  • Die system() Methode ruft direkt ein Befehlsargument in einer Untershell 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 Systemshell ist.
	import os
os.system(' copy src.txt tar.txt' )
	

popen()

	import os
os.popen('copy src.txt tar.txt' )
	

Verwenden von subProcess.call

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

	import subprocess
subprocess.call('copy source.txt target.txt', shell=True)
	

Referenzen