Python: obtenga una lista de archivos en el directorio ordenados por tamaño

En este artículo, veremos los diferentes enfoques para obtener la lista de archivos en el directorio dado en orden de tamaño en el lenguaje de programación Python.

Los dos enfoques diferentes para obtener la lista de archivos en un directorio están ordenados por tamaño de la siguiente manera:

Método 1: Usar la función os.listdir()

El método os.listdir() en Python se usa para obtener la lista de todos los archivos y directorios en el directorio especificado. Si no especificamos ningún directorio, se devolverá una lista de archivos y directorios en el directorio de trabajo actual.

Sintaxis: os.listdir(ruta)

Parámetros: ruta (opcional): ruta del directorio

Retorno: este método devuelve la lista de todos los archivos y directorios en la ruta especificada. El tipo de retorno de este método es lista.

En este método, crearemos una lista de nombres de archivos en una carpeta ordenados por tamaño de archivo. Pasaremos lambda x: os.stat(os.path.join(dir_name, x)).st_size como argumento clave a la función sorted() que ordenará los archivos en el directorio por tamaño.

Python3

import os
  
name_of_dir = 'dir_path'
  
# Storing list of all files
# in the given directory in list_of_files
list_of_files = filter( lambda x: os.path.isfile
                       (os.path.join(name_of_dir, x)),
                        os.listdir(dir_name) )
  
# Sort list of file names by size 
list_of_files = sorted( list_of_files,
                        key =  lambda x: os.stat
                       (os.path.join(name_of_dir, x)).st_size)
  
# Iterate over sorted list of file 
# names and print them along with size one by one 
for name_of_file in list_of_files:
    path_of_file = os.path.join(name_of_dir, name_of_file)
    size_of_file  = os.stat(path_of_file).st_size 
    print(size_of_file, ' -->', name_of_file)

Producción:

366  --> descript.ion
1688  --> readme.txt
3990  --> License.txt
15360  --> Uninstall.exe
48844  --> History.txt
50688  --> 7-zip32.dll
78336  --> 7-zip.dll
108074  --> 7-zip.chm
186880  --> 7zCon.sfx
205824  --> 7z.sfx
468992  --> 7z.exe
581632  --> 7zG.exe
867840  --> 7zFM.exe
1679360  --> 7z.dll

Método 2: U sando la función glob()

En el lenguaje de programación python, tenemos el módulo glob que proporciona una función llamada glob() que se utiliza para buscar archivos o directorios en un directorio determinado según el patrón coincidente. Usando la función glob() podemos usar comodines y expresiones regulares para hacer coincidir y encontrar algunos archivos en un directorio o todos los archivos en un directorio. En este método, usaremos la función glob() para obtener una lista de todos los archivos en un directorio junto con el tamaño. Los pasos son los siguientes,

Primero, obtendremos una lista de todos los archivos en un directorio usando glob(), luego ordenaremos la lista de archivos según el tamaño de los archivos usando la función sorted(). 

Usaremos os.stat(file_path).st_size para obtener el tamaño del archivo del objeto stat del archivo. Luego, pasaremos el tamaño encapsulado en una función lambda como argumento clave en la función sorted().

Python3

import glob
import os
  
name_of_dir = 'dir_path/'
  
# Storing list of all files (file paths)
# in the given directory in list_of_files
list_of_files = filter( os.path.isfile,
                        glob.glob(name_of_dir + '*') )
  
# Sort list of files in directory by size 
list_of_files = sorted( list_of_files,
                        key =  lambda x: os.stat(x).st_size)
  
# Iterate over sorted list of file names
# and print them along with size one by one 
for path_of_file in list_of_files:
    size_of_file  = os.stat(path_of_file).st_size 
    print(size_of_file, ' -->', path_of_file)   

Producción:

366  --> C:/Program Files/7-Zip\descript.ion
1688  --> C:/Program Files/7-Zip\readme.txt
3990  --> C:/Program Files/7-Zip\License.txt
15360  --> C:/Program Files/7-Zip\Uninstall.exe
48844  --> C:/Program Files/7-Zip\History.txt
50688  --> C:/Program Files/7-Zip\7-zip32.dll
78336  --> C:/Program Files/7-Zip\7-zip.dll
108074  --> C:/Program Files/7-Zip\7-zip.chm
186880  --> C:/Program Files/7-Zip\7zCon.sfx
205824  --> C:/Program Files/7-Zip\7z.sfx
468992  --> C:/Program Files/7-Zip\7z.exe
581632  --> C:/Program Files/7-Zip\7zG.exe
867840  --> C:/Program Files/7-Zip\7zFM.exe
1679360  --> C:/Program Files/7-Zip\7z.dll

Publicación traducida automáticamente

Artículo escrito por dhruvimpex47 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *