2017-03-13 9 views
5

Ich kann die Liste der Dateien mit ähnlichen Namen abrufen. Was ich versuche, ist, die neueste Datei abzurufen, um manipuliert zu werden. Mit glob kann ich alle Dateien abrufen, aber nicht die spezifischen.Python glob - neueste Datei aus der Liste

Hier ist mein Beispielcode:

permissionCurrentDate = '\n'.join(glob.iglob(os.path.join("PermissionsOnSystems*"))) 

Hier ist das Ergebnis, wenn ich es drucken:

PermissionsOnSystems2.txt 

PermissionsOnSystems20170313-144036.txt 

Was will ich nur PermissionsOnSystems20170313-144036.txt.

Wie kann ich das tun?

Danke!

Antwort

5

Je nachdem, ob Sie die neueste Datei aus der Sicht der Zugriffszeit, Änderung von Metadaten Zeit möchten, oder ändern Zeit können Sie os.path.getatime, os.path.getctime oder os.path.getmtime verwenden. So etwas wie:

max(glob.iglob('PermissionsOnSystems*'), key=os.path.getmtime) 
+0

Das funktionierte für mich, danke! – Glitteropia

+0

Da dies das Aufrufen von stat() für viele Dateien in einem Verzeichnis erfordert, ist scandir möglicherweise effizienter. –