2014-09-04 12 views
6

Betrachten Sie das folgende Stück Code:make os.listdir() Liste vollständige Pfade

files = sorted(os.listdir('dumps'), key=os.path.getctime) 

Das Ziel ist es, die aufgelisteten Dateien auf der Erstellungszeit zu sortieren. Da jedoch die die os.listdir nur die Dateinamen gibt und nicht den absoluten Pfad den Schlüssels also wirft die os.path.getctime eine Ausnahme zu sagen

OSError: [Errno 2] No such file or directory: 'very_important_file.txt'

Gibt es eine Abhilfe für diese Situation oder brauche ich meine eigene Sortierfunktion schreiben?

Antwort

4
files = sorted(os.listdir('dumps'), key=lambda fn:os.path.getctime(os.path.join('dumps', fn))) 
10

Sie können glob verwenden.

import os 
from glob import glob 
glob_pattern = os.path.join('dumps', '*') 
files = sorted(glob(glob_pattern), key=os.path.getctime) 
3
files = sorted([os.path.join('dumps', file) for file in os.listdir('dumps')], key=os.path.getctime)