Python COPY-Datei mit shutil.copy (), shutil.copystat ()

Inhaltsverzeichnis:

Anonim

Python-Kopierdateimethoden

Python bietet integrierte Funktionen zum einfachen Kopieren von Dateien mit den Betriebssystem-Shell-Dienstprogrammen.

Der folgende Befehl wird zum Kopieren der Datei verwendet

shutil.copy(src,dst)

Der folgende Befehl wird verwendet, um eine Datei mit MetaData-Informationen zu kopieren

shutil.copystat(src,dst)

Hier sind die Schritte zum Kopieren von Dateien in Python

Schritt 1) Bevor wir eine Datei kopieren, müssen wir den Pfad zur Originaldatei im aktuellen Verzeichnis abrufen. Im Code -

  1. Variable deklarieren
  2. Split-Funktion auf Variable anwenden

Code Erklärung

  • Zuerst werden wir überprüfen, ob unsere "guru99.txt" -Datei existiert oder nicht. Da wir die Datei guru99.txt früher erstellt haben, wissen wir, dass sie existiert, und wir werden mit dem Code fortfahren
  • Wir speichern den Dateipfad in der Variablen " src ", falls Ihre Datei vorhanden ist
  • Sobald wir den Pfad erhalten haben, werden wir den Pfad und den Dateinamen trennen
  • Dafür werden wir die Split- path.splitFunktion für die Quellvariable verwenden
  • Code führt bei der Ausführung " Dateiname " und " Dateipfad " separat aus

Schritt 2) Wir verwenden das Shutil-Modul, um eine Kopie der vorhandenen Datei zu erstellen. Hier haben wir eine Kopie unserer vorhandenen 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 unsere Kopie sein
  • Und dann werden wir die Kopierfunktion des Dienstprogramms verwenden, um von der Quelle zum Ziel zu kopieren
  • Wenn Sie den Code ausführen, wird auf der rechten Seite des Bedienfelds eine doppelte Datei mit der Erweiterung .bak erstellt

Schritt 3) Die Kopierfunktion kopiert nur den Inhalt der Datei, jedoch keine anderen Informationen. Um die mit der Datei, den Dateiberechtigungen und anderen Informationen verknüpften Metadaten zu kopieren , müssen Sie die Funktion " copystat " verwenden. 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, diesmal 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 osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Schritt 4) Sie können die Informationen zu der zuletzt geänderten Textdatei abrufen

  • Codezeile Nr. 15 - Zeigt Tag, Datum, Monat, Jahr und Uhrzeit an, zu der die TXT-Datei (guru99) zuletzt geändert wurde. Wir verwenden das Pfadmodul, um die Zeitangaben für die Dateiänderung abzurufen, und verwenden dann die Zeitfunktion c time , um diese in eine lesbare Zeit umzuwandeln. Wenn wir also den Code ausführen, können wir die Datei guru99.txt wurde zuletzt geändert am : Mo 8. Januar th um 13:35 Uhr 2018.
  • Codezeile Nr. 17 - Es gibt dasselbe, was Informationen zur Dateimodifikation enthält, aber es hat ein anderes Format, um sie darzustellen. Hier verwenden wir die Funktion Get Modification Time (path.getmtime ("guru99.txt")). Anstatt die Funktion c time zu verwenden, verwenden wir jetzt die Funktion From Time Stamp und erstellen ein Datums- / Uhrzeitobjekt. In der Ausgabe sehen Sie, dass die Details der Dateiänderungszeit in verschiedenen Formaten ausgedruckt werden. 2018-01-08, 13: 35: 51.334072

Hier ist der Code

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()

Zusammenfassung

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