Получение списков каталогов, отсортированных по дате создания, с использованием Python
При навигации по каталогу часто возникает необходимость получить отсортированный список его содержимого в соответствии с конкретными критериями, такими как дата создания. В Python эту задачу можно выполнить с легкостью.
Предлагаемый подход:
Для достижения этой цели используется комбинация встроенных в Python модулей манипуляции с файловой системой и функции сортировки. трудоустроен. Следующий фрагмент кода иллюстрирует этот процесс:
import glob import os search_dir = "/mydir/" files = [os.path.join(search_dir, f) for f in os.listdir(search_dir) if os.path.isfile(f)] files.sort(key=lambda x: os.path.getmtime(x))
Этот фрагмент кода начинается с получения списка всех файлов в указанном каталоге с помощью os.listdir(). Впоследствии любые элементы, не являющиеся файлами (например, каталоги, ссылки), отфильтровываются с помощью os.path.isfile(). Чтобы гарантировать правильные пути к файлам, каждое имя файла начинается с пути к каталогу поиска.
Затем файлы сортируются в соответствии со временем их изменения с помощью функции os.path.getmtime(). Эта функция возвращает время последней модификации файла в числовом формате. Передавая эту функцию в качестве ключевого аргумента функции sorted(), файлы упорядочиваются в хронологическом порядке, причем первыми отображаются самые последние созданные файлы.
Альтернативный подход:
Альтернативный подход предполагает использование модуля glob для фильтрации файлов и получения списка абсолютных путей к файлам:
import glob import os search_dir = "/mydir/" # This glob will look for all files and exclude any directories files = [f for f in glob.glob(f"{search_dir}/**", recursive=True) if os.path.isfile(f)] files.sort(key=lambda x: os.path.getmtime(x))
Этот код по существу выполняет поиск по всему содержимому указанного каталога и его подкаталогов, включая все файлы и исключая любые каталоги. Функция glob.glob() позволяет при необходимости более гибко сопоставлять имена файлов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3