2014-09-04 13 views
6

Rozważmy następujący fragment kodu:make os.listdir() Lista kompletne ścieżki

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

Celem jest, aby posortować wymienionych plików w oparciu o czas tworzenia. Jednak od The os.listdir daje tylko nazwę pliku, a nie bezwzględną ścieżkę klawisz tj os.path.getctime zgłasza wyjątek mówiący

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

Czy istnieje obejście tej sytuacji, czy trzeba napisać własną funkcję sortowania?

Odpowiedz

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

Możesz użyć glob.

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) 
Powiązane problemy