Mit Python eine Datei kopieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
michaelbierenfeld
User
Beiträge: 10
Registriert: Mittwoch 19. Juli 2006, 09:36

Dienstag 25. Juli 2006, 11:19

Hallo,

wie kann man den mit Python eine Datei kopieren aber das Datum der "Zieldatei" beibehalten. Ich brauch das weil ich ein paar Schweinereien mit CVS-Dateien machen muß und CVS ein bißchen empfindlich ist.

Beste Gruesse

Michael
BlackJack

Dienstag 25. Juli 2006, 11:36

Versuchs mal mit `shutil.copy2`. Das kopiert neben dem Dateiinhalt auch alle "stat" Informationen.
Tafkadasom2k5
User
Beiträge: 24
Registriert: Dienstag 25. Juli 2006, 09:32

Dienstag 25. Juli 2006, 12:01

Kommt drauf an, ob diese Daten in der Datei wirklich "integriert" sind, oder ob sie als Stream anhängen.

Wenn sie als Stream anhängen wird die Geschichte "unangenehm"; Ansonsten müsste theoretisch Binäres Lesen und Schreiben ohne Weiteres ausreichen- oder aktualisiert Python sowas von sich aus?

Gr33tz
Tafkadasom2k5
Ich kam, ich sah, und ich ging einfach wieder...

Gott: "Nietzsche ist tot"
BlackJack

Dienstag 25. Juli 2006, 23:25

Äh, das Betriebssystem sorgt normalerweise dafür, das Informationen wie der Zeitstempel der letzten Änderung aktualisiert wird. Ich weiss jetzt nicht wovon Du gerade redest.
Tafkadasom2k5
User
Beiträge: 24
Registriert: Dienstag 25. Juli 2006, 09:32

Mittwoch 26. Juli 2006, 09:07

BlackJack hat geschrieben:Äh, das Betriebssystem sorgt normalerweise dafür, das Informationen wie der Zeitstempel der letzten Änderung aktualisiert wird.
Ja, also gehe ich davon aus, das die Daten angehängt wurden? In dem Fall muss er die Datei kopieren, und die alten "Daten" wieder dranhängen, nachdem das Betriebssystem es schon aktualisiert hat.

Oder habe ich dan Denkfehler?
Ich kam, ich sah, und ich ging einfach wieder...

Gott: "Nietzsche ist tot"
BlackJack

Mittwoch 26. Juli 2006, 10:05

Entweder hast Du einen Denkfehler oder ich habe die Ausgangsfrage völlig falsch verstanden.

Es sollen Dateien kopiert werden. Zu einer Datei gehören vom Betriebssystem verwaltete Metadaten, wie die Grösse, das Datum wann die Datei angelegt wurde, wann sie zuletzt verändert wurde usw.

Wenn man eine Datei einfach nur kopiert, also alte Datei zum lesen öffnen, neue Datei zum schreiben öffnen, dann wird die neue Datei neu erstellt, bekommt also das aktuelle Datum und die aktuelle Zeit als Erstellungsdatum verpasst. Und genau das ist nicht gewünscht -- Michael möchte das auch diese Metadaten mitkopiert werden.

Beispiel wie es nicht sein soll:

Code: Alles auswählen

marc@s8n:~$ touch a.txt
marc@s8n:~$ ls -l a*.txt
-rw-r--r-- 1 marc marc 0 2006-07-26 11:04 a.txt
marc@s8n:~$ cp a.txt a2.txt
marc@s8n:~$ ls -l a*.txt
-rw-r--r-- 1 marc marc 0 2006-07-26 11:05 a2.txt
-rw-r--r-- 1 marc marc 0 2006-07-26 11:04 a.txt
Die Kopie ist eine Minute später angelegt worden.
Antworten