5 Stimmen

Unterschied zwischen shutil.copy2(s,d) und shutil.move(s,d)

Ich habe die Dokumentation zu shutil.move und copy2 gelesen. Soweit ich weiß, ruft move einfach die copy2-Funktion auf und dann die remove-Funktion, während copy2 copy und dann copystat aufruft. Das macht alles Sinn, aber wenn ich diese Funktionen verwende, stoße ich auf eine interessante Einschränkung (denke ich) Wenn ich die move-Funktion auf eine Datei anwende, bleiben alle Zeitstempel der Datei gleich, einschließlich des Erstellungsdatums. Wenn ich einfach copy2 für die Datei aufrufe, dann wird das Erstellungsdatum zur aktuellen Zeit. Da move die Funktion copy2 verwendet, warum wird dann nicht auch das Erstellungsdatum geändert? Oder vereinfacht die Dokumentation die Sache zu sehr. Es wäre schön, wenn ein Skript, das ich für copy2 habe, auch den ursprünglichen Erstellungszeitstempel kopieren würde. Ich arbeite erst seit ein paar Tagen mit Python, daher möchte ich nur wissen, warum der Erstellungszeitstempel zwischen den beiden Funktionsaufrufen unterschiedlich ist. Ich bin auf einem Windows 7 64, wenn das einen Unterschied macht. Ty alle im Voraus.

ejemplo:

import os
import shutil
src = os.path.join(os.getcwd(), "copyme.txt")
src2 = os.path.join(os.getcwd(), "moveme.txt")
dst = os.path.join(os.getcwd(), "New Folder")
shutil.copy2(src, dst) #creation date changed
shutil.move(src2, dst) #creation date remains the same as original

Ich kann mir nicht erklären, warum das so ist...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X