2014-09-04 2 views
6

Рассмотрим следующий фрагмент кода:делают os.listdir() список полных путей

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

Цель состоит в том, чтобы отсортировать перечисленные файлы, основанные на времени создания. Однако, так как os.listdir дает только имя файла, а не абсолютный путь клавишу т.е. os.path.getctime бросает исключение, говоря

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

Есть обходной путь к этой ситуации, или мне нужно написать собственную функцию сортировки?

ответ

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

Вы можете использовать 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^