Я пытаюсь создать рекурсивный список файлов из каталога, а затем отсортировать их по возрасту. Я не очень-то сильно забочусь о расширении файла, сначала старейший файл.Создайте рекурсивный отсортированный список файлов (по старшему)
вот что я до сих пор, но оно не сортировать по дате ...
например: /Главная/пользователь/папки/dir1 /Главная/пользователь/папки/dir2 /дом/пользователь/папка/dir3
def returnold():
for root, dirnames, filenames in os.walk(imagedir):
for filename in fnmatch.filter(filenames, '*.jpg, *.png'):
matches.append(os.path.join(root, filename))
return sorted(matches, key=lambda p: os.path.getctime(os.path.join(user_dir, p)))
imagedir = /home/user/folder
filelist = returnold()
Честно говоря, моя цель здесь обработать все файлы в домашней/пользователь/папки, самого старого файла в первую очередь. Вместо того, чтобы обрабатывать все файлы в каталоге dir1/first, тогда dir2/next, мне нужно сначала обработать старейший файл, независимо от того, где он существует в этой древовидной структуре. Моя мысль заключалась в том, что я мог бы написать список while, а не пустой цикл для обработки всех файлов. Если есть лучший способ, я бы хотел учиться. Оцените любую помощь, которую вы можете добавить здесь.
Как его сортировать? Не похоже, что есть ошибка (но я никогда не слышал о 'fnmatch' раньше). – mr2ert
'ctime' не время создания. Это время последнего изменения индексного дескриптора. К сожалению, нет надежного способа получить фактический возраст файла, но вы можете использовать 'mtime', чтобы получить возраст файла с момента последней модификации *. – kojiro
спасибо kojiro, что помогло! –