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 –
- Variable deklarieren
- Anwenden der Split-Funktion auf eine Variable
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.
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.
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.
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
-
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)“