2017-03-13 50 views
5

Jestem w stanie pobrać listę plików o podobnych nazwach. Próbuję pobrać najnowszy plik, aby go zmanipulować. Za pomocą globu mogę odzyskać wszystkie pliki, ale nie konkretne.Python glob - pobierz najnowszy plik z listy

Oto mój przykładowy kod:

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

Oto wynik podczas drukowania go:

PermissionsOnSystems2.txt 

PermissionsOnSystems20170313-144036.txt 

Chcę tylko PermissionsOnSystems20170313-144036.txt.

Jak mogę to zrobić?

Dzięki!

Odpowiedz

5

W zależności od tego, czy chcesz najnowszy plik z perspektywy czasu dostępu, czasu zmiany metadanych, czy modyfikuj czas, możesz użyć os.path.getatime, os.path.getctime lub os.path.getmtime. Więc coś takiego:

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

To zadziałało dla mnie, dzięki! – Glitteropia

+0

Ponieważ wymaga to wywołania stat() w wielu plikach w katalogu, skandir może być bardziej wydajny. –