"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo obtener una lista ordenada de archivos en un directorio por fecha de creación usando Python?

¿Cómo puedo obtener una lista ordenada de archivos en un directorio por fecha de creación usando Python?

Publicado el 2024-11-16
Navegar:239

How can I get a sorted list of files in a directory by creation date using Python?

Obtención de listados de directorios ordenados por fecha de creación usando Python

Al navegar por un directorio, a menudo surge la necesidad de obtener una lista de sus contenidos ordenados según criterios específicos, como la fecha de creación. En Python, esta tarea se puede realizar con facilidad.

Enfoque sugerido:

Para lograr esto, se utiliza una combinación de los módulos de manipulación del sistema de archivos incorporados de Python y una función de clasificación. empleado. El siguiente fragmento de código ilustra este proceso:

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))

Este fragmento de código comienza obteniendo una lista de todos los archivos dentro del directorio especificado usando os.listdir(). Posteriormente, cualquier elemento que no sea un archivo (por ejemplo, directorios, enlaces) se filtra utilizando os.path.isfile(). Para garantizar las rutas de archivo correctas, cada nombre de archivo tiene como prefijo la ruta del directorio de búsqueda.

Los archivos se ordenan según su hora de modificación utilizando la función os.path.getmtime(). Esta función devuelve la hora de la última modificación de un archivo en formato numérico. Al pasar esta función como argumento clave de la función sorted(), los archivos se organizan en orden cronológico, apareciendo primero los archivos creados más recientemente.

Enfoque alternativo:

Un enfoque alternativo implica utilizar el módulo glob para filtrar los archivos y obtener una lista de rutas absolutas de archivos:

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))

Este código esencialmente busca todo el contenido del directorio especificado y sus subdirectorios, incluidos todos los archivos y excluyendo los directorios. La función glob.glob() permite una coincidencia de nombres de archivo más flexible si es necesario.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3