Dateiattribute in einer Kopie beibehalten

8

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.

    
Insert Text Here 16.07.2013, 19:20
quelle

1 Antwort

16

Wenn Sie sich die Dokumentation für shutil ansehen, finden Sie sofort die copy2 Funktion, die ist:

  

Identisch mit copy() , außer dass copy2() 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.

    
abarnert 16.07.2013, 19:22
quelle

Tags und Links