Status aller Dateien eines Verzeichnisses?

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.
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Montag 14. Februar 2005, 10:02

Tach,

Ich möchte die letzte Änderung aller Dateien in einem Verzeichniss in einer Liste speichern.
Also jedes letztes Änderungsdatum der Dateien in einem Verzeichnis.
Kann mir jemand bei diesem Problem helfen?
Hate sowas in der Art im Sinn

Code: Alles auswählen

for i in range len Filesnew:
 Accesstime = [Accesstime.append os.stat(FolderToScan+Filesnew[i-1])[8]]
Filesnew ist eine Liste der Dateinamen aller Dateien in einem Verzeichniss

FolderToScan beinhaltet den Pfad des Verzeichnisses

Gruß
Psus82

Edit (Leonidas): Code in Python Tags gesetzt.
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Gast

Montag 14. Februar 2005, 10:36

Code: Alles auswählen

import os

FolderToScan  = "C:"
files = os.listdir(FolderToScan)

access_time_list = []
for f in files:
    if os.path.isfile(f):
        access_time_list.append((f, os.path.getmtime(f)))
Edit (Leonidas): Code in Python Tags gesetzt.
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Montag 14. Februar 2005, 10:40

:D
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
BlackJack

Montag 14. Februar 2005, 23:18

Oder als LC

Code: Alles auswählen

import os
path = '.'
access_time_list = [(f, os.path.getmtime(f))
                    for f in os.listdir(path)
                    if os.path.isfile(f)] 
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Dienstag 15. Februar 2005, 11:58

Seid ihr sicher das eure beiden Lösungen funktionieren?
Ich habe beide ausprobiert und siel liefern mir eine leere List wenn ich sie mit print ausgebe.

Gruß
Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 15. Februar 2005, 12:38

Also bei mir geben beide Lösungen das exakt gleche Ergebnis, mit == getestet.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Dienstag 15. Februar 2005, 12:44

Hier ist mein Code

Code: Alles auswählen

AccessTimeNew = [(f, os.path.getmtime(f)) for f in os.listdir("c:") if os.path.isfile(f)]
bei mir kommt immer ne leere Liste raus.

Code: Alles auswählen

>>> AccessTimeNew
[]
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 15. Februar 2005, 13:23

Bei "c:" bekomme ich alle Dateien, aber "c:\\" aber nicht mehr. Komische Sache (Liegt vermutlich an dem geescapeten Backslash, den mah listdir wohl nicht, vermutlich mag listdir keine Slashes hinten). Aber dein Problem kann ich nicht nachvollziehen. Was hast du denn für ein Betriebssystem, Python Version?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Dienstag 15. Februar 2005, 13:28

Mein BS ist Windows 2000 und meine Py version ist 2.3
Leider kann ich die Py version nicht updaten da ein anderes Programm nur mit dieser Version arbeitet.

Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 15. Februar 2005, 13:40

Psus82 hat geschrieben:Leider kann ich die Py version nicht updaten da ein anderes Programm nur mit dieser Version arbeitet.
Hmm, vielleicht doch. Wenn es um Module geht, sollte das ja kein Problem sein, ich habe viele auf Python 2.4 portiert.

Hat dein Programm Lesezuriff auf C:? Kannst du es mit einem anderen Ordner versuchen?
Zuletzt geändert von Leonidas am Dienstag 15. Februar 2005, 13:45, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Dienstag 15. Februar 2005, 13:44

Ich habe auf drei verschiedene Pfade versucht zuzugreifen.
Hat immer nicht geklappt.
Gibts den irgendwie ne andere Möglichkeit?

Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
BlackJack

Dienstag 15. Februar 2005, 13:47

Kannst Du die Sachen nicht mal interaktiv einzeln ausprobieren? Also ob ein os.listdir("c:") schon eine leere Liste liefert, oder ob aus der Liste einfach alles rausgefiltert wird.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 15. Februar 2005, 13:49

Geht das?

Code: Alles auswählen

print os.listdir("C:\\Programme\\")
Das das bei dir nicht geht, kommt mir sehr seltsam vor.
Zuletzt geändert von Leonidas am Dienstag 15. Februar 2005, 13:51, insgesamt 3-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Dienstag 15. Februar 2005, 13:49

Habe ich schon gemacht.
os.listdir funktioniert und getmtime und isfile funktioniert auch.

Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 15. Februar 2005, 13:53

Das?

Code: Alles auswählen

import os

FolderToScan  = "C:"
files = os.listdir(FolderToScan)

for f in files:
    print f
Vielleicht können wir uns dem Fehler schrittweise nähern.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten