Conocer el tamaño de los archivos y el contenido de las carpetas

Una vez que tenga formas de manejar las rutas de los archivos, puede empezar a reunir información sobre archivos y carpetas específicos. El módulo os.path proporciona funciones para encontrar el tamaño de un archivo en bytes y los archivos y carpetas dentro de una carpeta determinada.

  • Llamar a os.path.getsize(path) devolverá el tamaño en bytes del archivo en el argumento de la ruta.
  • Llamar a os.listdir(path) devolverá una lista de cadenas de nombres de archivos para cada archivo en el argumento path. (Tenga en cuenta que esta función está en el módulo os, no en os.path).

Esto es lo que obtengo cuando pruebo estas funciones en el shell interactivo:

>>> os.path.getsize('C:\\Windows\\System32\\calc.exe')
27648
>>> os.listdir('C:\\Windows\\System32')
['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll',
--snip--
'xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll']

Como puedes ver, el programa calc.exe de mi ordenador tiene un tamaño de 27.648 bytes, y tengo muchos archivos en C:\Windows\system32. Si quiero encontrar el tamaño total de todos los archivos en este directorio, puedo usar os.path.getsize() y os.listdir() juntos.

>>> totalSize = 0
>>> for filename in os.listdir('C:\\Windows\\System32'):
      totalSize = totalSize + os.path.getsize(os.path.join('C:\\Windows\\System32', filename))
>>> print(totalSize)
2559970473

A medida que recorro cada nombre de archivo en la carpeta C:\Windows\System32 , la variable totalSize se incrementa con el tamaño de cada archivo. Observe que cuando llamo a os.path.getsize(), utilizo os.path.join() para unir el nombre de la carpeta con el nombre del archivo actual. El entero que devuelve os.path.getsize() se añade al valor de totalSize. Después de recorrer todos los archivos, imprimo totalSize para ver el tamaño total de la carpeta C:\Windows\System32.

Deja una respuesta