Datei kopieren in Python: Shutil.copy(), Shutil.copystat() Methode

Python Methoden zum Kopieren von Dateien

Python bietet integrierte Funktionen zum einfachen Kopieren von Dateien mithilfe der Operating System Shell-Dienstprogramme.

Der folgende Befehl wird zum Kopieren von Dateien verwendet

shutil.copy(src,dst)

Der folgende Befehl wird zum Kopieren von Dateien mit Metadateninformationen verwendet

shutil.copystat(src,dst)

So kopieren Sie eine Datei in Python

Hier sind die Schritte zum Kopieren der Datei in Python mit der Shutil copy()-Methode:

Schritt 1) Erfassen Sie den ursprünglichen Pfad im aktuellen Verzeichnis
Bevor wir eine Datei kopieren, müssen wir den Pfad zur Originaldatei im aktuellen Verzeichnis ermitteln. Im Code –

  1. Variable deklarieren
  2. Anwenden der Split-Funktion auf eine Variable

Kopieren einer Datei in Python

Code Erklärung

  • Zuerst überprüfen wir, ob unsere Datei „guru99.txt“ existiert oder nicht. Da wir die Datei guru99.txt zuvor erstellt haben, wissen wir, dass sie existiert, und werden mit dem Code fortfahren
  • Wir speichern den Dateipfad in der Variablen „src” wenn Ihre Datei existiert
  • Sobald wir den Pfad ermittelt haben, trennen wir den Pfad und den Dateinamen
  • Dafür werden wir den Split nutzen path.split Funktion auf Quellvariable
  • Wenn der Code ausgeführt wird, wird „ausgedruckt“Dateiname" und "Dateipfad” separat

Schritt 2) Erstellen Sie eine Kopie unserer vorhandenen Datei mit dem Shutil-Modul
Wir verwenden das Shutil-Modul, um eine Kopie der vorhandenen Datei zu erstellen. Hier haben wir eine Kopie unserer bestehenden Datei „guru99.txt“ erstellt.

Kopieren einer Datei in Python

Code Erklärung

  • Nehmen Sie den ursprünglichen Dateinamen „guru99.txt“ und fügen Sie am Ende „guru99.txt.bak“ die Buchstaben .bak hinzu. Dieser Name mit der Erweiterung .bak wird unser Duplikat sein
  • Und dann verwenden wir die Kopierfunktion des Dienstprogramms, um von der Quelle zum Ziel zu kopieren
  • Wenn Sie den Code ausführen, sehen Sie, dass auf der rechten Seite des Bedienfelds eine doppelte Datei mit der Erweiterung .bak erstellt wird

Schritt 3) Kopieren Sie mit der Datei verknüpfte Metadaten, Dateiberechtigungen und andere Informationen
Die Kopierfunktion kopiert nur den Inhalt der Datei, jedoch keine anderen Informationen. Kopieren Metadaten im Zusammenhang mit der Datei, Dateiberechtigung und anderen Informationen, die Sie verwenden müssen“copystat” Funktion. Bevor wir diesen Code ausführen, müssen wir unsere Kopierdatei „guru99.text.bak“ löschen.

Kopieren einer Datei in Python

Sobald Sie die Datei gelöscht und das Programm ausgeführt haben, wird eine Kopie Ihrer TXT-Datei erstellt, dieses Mal jedoch mit allen Informationen wie Dateiberechtigung, Änderungszeit und Metadateninformationen. Sie können zu Ihrer Betriebssystem-Shell gehen, um die Informationen zu überprüfen.

Kopieren einer Datei in Python

Hier ist der Code

import os
import shutil
from os import path

def main():
    # make a duplicate of an existing file
	if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    
	#seperate the path from the filter
	head, tail = path.split(src)
	print("path:" +head)
	print("file:" +tail)
	
	#let's make a backup copy by appending "bak" to the name
	dst = src+".bak"
	# nowuse the shell to make a copy of the file
	shutil.copy(src, dst)
	
	#copy over the permissions,modification
	shutil.copystat(src,dst)
	
if __name__=="__main__":
	main()

Schritt 4) Holen Sie sich die Informationen
Sie können die Informationen über die zuletzt geänderte Textdatei abrufen

Kopieren einer Datei in Python

  • Codezeile Nr. 15 - Sie gibt den Tag, das Datum, den Monat, das Jahr und die Uhrzeit an, wann die .txt-Datei (guru99) zuletzt geändert wurde. Wir verwenden das Pfadmodul, um die Details zur Änderungszeit der Datei abzurufen, und verwenden dann die Zeitklassen c Zeitfunktion um das in eine lesbare Zeit umzuwandeln. Wenn wir also den Code ausführen, können wir sehen, dass die Datei guru99.txt zuletzt geändert wurde am Mo, 8. Januarth um 13:35 Uhr 2018.
  • Codezeile Nr. 17: Sie macht das Gleiche und gibt Informationen über Dateiänderungen an, hat aber ein anderes Format, um sie darzustellen. Hier verwenden wir Funktion „Änderungszeit abrufen“. (path.getmtime („guru99.txt“)). Anstatt die c-Zeitfunktion zu verwenden, verwenden wir jetzt Von der Zeitstempelfunktion und werde ein Datum-Uhrzeit-Objekt erstellen. In der Ausgabe können Sie sehen, dass die Dateiänderungszeitdetails in einem anderen Format ausgedruckt werden 2018-01-08, 13:35:51.334072

Hier ist der Code

#
# Example file for working with o.s path module

import os
from os import path
import datetime
from datetime import date, time, timedelta
import time

def main():

    # Get the modification time
    t = time.ctime(path.getmtime("guru99.txt.bak"))
    print(t)
    print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))

if __name__ == "__main__":
    main()

Zusammenfassung

  • Um eine Kopie der vorhandenen Datei mithilfe von Code zu erstellen Shutil.copy (src,dst)
  • Um alle Informationen der Originaldatei zu kopieren, um eine Datei zu duplizieren Dateiberechtigung, Änderungszeit oder Metadateninformationen Verwenden Sie den Code „shutil.copystat(src,dst)“