Saltar al contenido principal

Cómo obtener el tamaño de un archivo en Python

Cómo obtener el tamaño de un archivo en Python.

Aquí tienes un tutorial detallado paso a paso sobre cómo obtener el tamaño de un archivo en Python.

Paso 1: Importar los módulos necesarios​

Para empezar, necesitamos importar el módulo os, que proporciona una forma de interactuar con el sistema operativo. Este módulo contiene funciones para trabajar con archivos y directorios.

import os

Paso 2: Especificar la ruta del archivo​

A continuación, debemos especificar la ruta del archivo del cual queremos determinar el tamaño. Puedes proporcionar la ruta absoluta (por ejemplo, C:/ruta/al/archivo.txt) o la ruta relativa (por ejemplo, archivo.txt si se encuentra en el mismo directorio que tu script de Python).

ruta_archivo = 'ruta/hacia/tu/archivo.txt'

Paso 3: Comprobar si el archivo existe​

Antes de obtener el tamaño del archivo, es una buena práctica comprobar si el archivo realmente existe. Podemos utilizar la función os.path.exists() para hacer esto.

if os.path.exists(ruta_archivo):
print("El archivo existe.")
else:
print("El archivo no existe.")

Paso 4: Obtener el tamaño del archivo​

Para obtener el tamaño del archivo, podemos utilizar la función os.path.getsize(). Esta función toma la ruta del archivo como argumento y devuelve el tamaño del archivo en bytes.

tamaño_archivo = os.path.getsize(ruta_archivo)

Paso 5: Convertir el tamaño del archivo a un formato legible por humanos​

Por defecto, os.path.getsize() devuelve el tamaño del archivo en bytes. Si deseas mostrar el tamaño del archivo en un formato más amigable para el humano (por ejemplo, kilobytes o megabytes), puedes crear una función auxiliar para convertirlo.

Aquí tienes una función de ejemplo que convierte el tamaño del archivo a un formato legible:

def convertir_tamaño(bytes):
# 2**10 = 1024
if bytes == 0:
return "0B"
nombres_tamaño = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
i = int(math.floor(math.log(bytes, 1024)))
p = math.pow(1024, i)
s = round(bytes / p, 2)
return f"{s} {nombres_tamaño[i]}"

Ahora puedes utilizar esta función para convertir el tamaño del archivo:

tamaño_legible = convertir_tamaño(tamaño_archivo)
print(f"Tamaño del archivo: {tamaño_legible}")

Ejemplo completo​

Aquí tienes el código de ejemplo completo que incorpora todos los pasos mencionados anteriormente:

import os
import math

def convertir_tamaño(bytes):
# 2**10 = 1024
if bytes == 0:
return "0B"
nombres_tamaño = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
i = int(math.floor(math.log(bytes, 1024)))
p = math.pow(1024, i)
s = round(bytes / p, 2)
return f"{s} {nombres_tamaño[i]}"

ruta_archivo = 'ruta/hacia/tu/archivo.txt'

if os.path.exists(ruta_archivo):
print("El archivo existe.")
tamaño_archivo = os.path.getsize(ruta_archivo)
tamaño_legible = convertir_tamaño(tamaño_archivo)
print(f"Tamaño del archivo: {tamaño_legible}")
else:
print("El archivo no existe.")

¡Eso es todo! Ahora tienes un tutorial detallado paso a paso sobre cómo obtener el tamaño de un archivo en Python.