В никсах существует прекрасная команда du, для того что бы сразу показать размер поддиректорий в директории.
Как это реализовать через Python скрипт?
Делаю так:
import os
#Указываю директорию
basedir = "/home/user/test/"
#Пока примем что размер поддиректорий равен 0
sub_size = 0
#Так как мы не знаем сколько поддиректорий в директории, получаем их названия.
subnames = os.listdir(basedir)
#Далее через цикл сплитим пути до поддиректорий.
for subname in subnames:
subpath = "%s/%s" % (os.path.dirname(basedir), subname)
#Потом через walk, получим кортеж (путь до директории, поддиректория, файлы)
for path, subdirs, files in os.walk(subpath):
#Кто у нас "ест" место? Проходимся по этим файлам и складываем размер
for files in file:
#Получаем полный путь до файла.
filename = os.path.join(path, file)
#Узнаем его размер и увеличиваем размер папки
sub_size += os.path.getsize(filename) /1024 /1024
print "%s - %.1f Mb" % (basedir[len[basedir]: ], sub_size)
НО....оно выводит мне размер поддиректорий..так что размер второй поддиректории равен сумме размеров первой и второй, и так далее.
СКАЖИТЕ, где ошибка!!!