Comment obtenir et formatter la taille d'un fichier en octet avec python ?

Published: 02 février 2018

Updated: 21 septembre 2023

DMCA.com Protection Status

Pour obtenir la taille d'un fichier en Python, il existe plusieurs solutions :

Avec getsize() method

Vous pouvez également utiliser la méthode getsize() du module os pour obtenir la taille d'un fichier. Cette méthode prend en argument un chemin d'accès ou une URL et renvoie sa taille en octets. Par exemple:

import os

file_size = os.getsize('filename.txt')

print(file_size)

donne

585989

en Byte.

Pour convertir un octet en Ko, par exemple.

1 Byte = 0.001 KB (in decimal)

Donc, pour obtenir la sortie en Ko :

file_size = os.getsize('filename.txt') * 0.001 # in KB

Avec stat() method

Pour obtenir la taille d'un fichier en Python, vous pouvez utiliser la méthode stat() du module os. Cette méthode renvoie un tuple contenant la taille du fichier, ainsi que d'autres informations telles que ses permissions et sa date de création. Pour obtenir la taille du fichier, utilisez l'attribut st_size de ce tuple. Par exemple:

import os

file_info = os.stat('filename.txt')

file_size = file_info.st_size

print(file_size)

donne

585989

Avec pathlib module

Alternativement, vous pouvez utiliser le module pathlib pour obtenir la taille d'un fichier. L'objet Path créé par ce module possède une méthode stat() qui renvoie un objet contenant des informations sur le fichier, y compris sa taille. Pour obtenir la taille du fichier, utilisez l'attribut .stat().st_size. Par exemple:

from pathlib import Path

file_info = Path('filename.txt').stat()

file_size = file_info.st_size

print(file_size)

donne

585989

Taille totale des fichiers avec une extension donnée

Pour obtenir tous les fichiers se terminant par .hdf, une solution consiste à utiliser glob().

import glob
import os

file_list = glob.glob('media/*.hdf')

ensuite, nous pouvons itérer sur tous les fichiers et obtenir la taille totale :

tot_size = 0

for file in file_list:
    file_size = os.path.getsize(file) * 0.001 # in KB
    tot_size += file_size
    print( str( round(file_size,2)  ) + ' KB')

donne

250728.912 KB

Références

Liens Site
getsize() docs.python.org
pathlib docs.python.org
Bytes to KB Conversion gbmb.org