Ich habe die Situation, dass ich die ursprünglichen Attribute für eine Datei behalten möchte (das Erstellungsdatum der Datei usw.). Normalerweise, wenn Sie Dateien in Windows kopieren, erhält die Kopie, die Sie erstellen, neue "modifizierte" Daten usw. Ich bin über den shutil.copy
-Befehl gekommen - obwohl dies die Dateiattribute nicht gleich hält.
Ich habe die folgende Frage zu Stack Unix , aber ich habe mich gefragt, ob es eine Möglichkeit für mich gibt, dies in Python zu tun.
Wenn Sie sich die Dokumentation für shutil
ansehen, finden Sie sofort die copy2
Funktion, die ist:
Identisch mit
copy()
, außer dasscopy2()
auch versucht, alle Dateimetadaten zu erhalten.
In den letzten Versionen von Python gibt es eine ganze Reihe von Funktionen, um Teile dieser separaten Datei zu bearbeiten - copy
, copymode
, copystat
- aber wenn Sie nur alles kopieren wollen, macht copy2
alles möglich.
Wie die Warnung oben in der Dokumentation sagt, bedeutet "alles mögliche" nicht alles, aber es enthält die Daten und andere Attribute. Insbesondere:
Unter Windows werden Dateibesitzer, ACLs und alternative Datenströme nicht kopiert.
Wenn Sie wirklich nur dieses Zeug brauchen, müssen Sie auf die Win32-API zugreifen (was am einfachsten über pywin32 ). Aber du nicht.
Tags und Links python file-attributes