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.