[Python-de] Verändert os.walk die access time?

Carsten carscht at jpberlin.de
Don Mar 17 13:29:12 CET 2005


gerhard quell schrieb:

Hallo,

> ~ sobald Du in ein Verzeichnis wechselst, machst Du einen read()-Aufruf!
> Dieser read()-Aufruf ändert die a_time und daß passiert auf meinem
> System unter Linux auch. Es würde sich nur dann die atime nicht ändern,
> wenn Du 0 Bytes lesen würdest (siehe man-Pages).

OK, dass das entgegen meiner vorherigen Annahme auch für find gilt, 
macht die Sache selbst für mich verständlich.

> lstat ändert die atime nicht! D.h. Du kannst den Verzeichnisbaum
> ablaufen und via stat feststellen, welche atime eine Datei oder ein
> Verzeichnis hat. Und dann kannst Du in die Unterverzeichnisse wechseln.

Ich glaube, ich verstehe nicht, wozu Du lstat genau benutzen willst. 
Mein bisheriger Ansatz war, mit os.walk() das Verzeichnis zu durchlaufen 
und die atime der Ergebnisse mit os.lstat() auszuwerten Aber die atime 
der Verzeichnisse ändert sich ja schon beim Durchlaufen derselben, beim 
lstat-Aufruf ist es also schon passiert.
Ich könnte alternativ erst nur das aktuelle Verzeichnis mit os.listdir() 
untersuchen und die atime aller enthaltenen Verzeichnisse und Dateien 
checken und erst danach in die Unterverzeichnisse wechseln.
Das ergibt aber wenig Sinn, da ich ja beim Wechsel in die 
Unterverzeichnisse dann doch deren atime verändere. Als Sinn der Übung 
schwebte mir aber vor, regelmäßig nach Verzeichnissen zu suchen, die 
z.B. seit einem Monat nicht benutzt wurden.
Gruß,
Carsten