Datum eines Verzeichnisses ermitteln

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.
andrejg
User
Beiträge: 4
Registriert: Mittwoch 14. Juni 2006, 15:00
Wohnort: Puderbach

Datum eines Verzeichnisses ermitteln

Beitragvon andrejg » Donnerstag 28. Februar 2008, 09:19

Hallo zusammen,

ich versuche ein Skript zu schreiben, der aus ein Verzeichnis die Unterverzeichnisse an Hand von Datum in ein Archivverzeichnis verschiebt und zwar es sollen 2 jüngsten Verzeichnisse stehen bleiben und alle anderen müssen weg.
Folgenden Code habe ich soweit fertig:

Code: Alles auswählen

#!/usr/bin/python
import sys
import re
import os
from datetime import date
import time
import dircache

if __name__=='__main__':
    oPath = 'Pfand_zum_Verzeichnis'
    f=open('test.txt', 'w')
    if os.path.isdir (oPath):
      a = dircache.listdir(oPath)
      for aname in a:
        f.write (aname + '\n')
        if os.path.isdir (oPath + '/' + aname):
          b = dircache.listdir(oPath + '/' + aname)
          for bname in b:
            n = oPath + '/' + aname + '/' + bname
            print os.path.getctime(n)
            #print time.asctime(os.path.getctime(n))
            #print time.strftime("%d %b %Y %H:%M:%S +0000", os.path.getctime(n))

f.close

Die auskommentierte Zeilen bringen bei mir Fehlermeldungen.
Die Ausgabe von getctime sieht bei mir wie folgt aus:
[code=]1204117395
1204117433
1204118546
1204118503
1204118464
1204116606
1204116523
1204116705
1204116546
1204116649
1204116498[/code]

Damit kann ich nichts anfangen.
Wie mache ich das?

gruß andrej
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Beitragvon meneliel » Donnerstag 28. Februar 2008, 09:37

Müsste die Anzahl der Sekunden seit dem letzten Zugriff sein.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Donnerstag 28. Februar 2008, 09:47

Nein, das sind die Sekunden seit dem (bei Unixen) 1.1.1970:
docs.python.org hat geschrieben:getctime(path)
Return the system's ctime which, on some systems (like Unix) is the time of the last change, and, on others (like Windows), is the creation time for path. The return value is a number giving the number of seconds since the epoch (see the time module).

Mit time.ctime z.B. kann man das umrechnen, aber wenn du nur die neusesten Dateien rausfinden willst, ist das Format so ja ganz praktisch.

Ach ja, und ich wuerde mir mal os.path.join ansehen.
Zuletzt geändert von Rebecca am Donnerstag 28. Februar 2008, 09:48, insgesamt 1-mal geändert.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Donnerstag 28. Februar 2008, 09:48

Code: Alles auswählen

In [11]: t = os.path.getctime('LSort.java')

In [10]: datetime.datetime.fromtimestamp(t)
Out[10]: datetime.datetime(2008, 2, 27, 18, 29, 56)
Benutzeravatar
akis.kapo
User
Beiträge: 127
Registriert: Freitag 1. September 2006, 12:58

Beitragvon akis.kapo » Donnerstag 28. Februar 2008, 13:46

Darf ich anmerken, dass ihr (nach der Beschreibung von oben) nach der mtime sucht.

mtime = Zeitpunkt der Verzeichnis (/File) Erstellung EDIT1: oder der letzen Anderung des Inhalts [1]
atime = Zeitpunkt des letztes Zugriffs auf das Verzeichnis/File
ctime = Zeitpunkt, wo sich Access-permissions oder ownership des Verzeichnis/Files zuletzt geändert haben

EDIT2:
[1] Wobei der Inhalt sich nicht wirklich ändern muss, auch wenns in 99,99999% der Fällen so ist. Theoretisch reicht ein schreibender Zugriff auf die Datei mit close() am Ende, um die mtime upzudaten. Ob die Daten sich ändern oder man dasselbe nochmal reinschreibt, ist egal.
andrejg
User
Beiträge: 4
Registriert: Mittwoch 14. Juni 2006, 15:00
Wohnort: Puderbach

Beitragvon andrejg » Freitag 29. Februar 2008, 07:35

Danke für eure Antworten.
Werde versuchen das umzusetzen.

gruß andrej

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]