python统计文件夹大小

python的内置方法只提供了获取文件大小的方法os.path.getsize(),为了获取整个文件夹的大小,我们需要遍历整个文件夹,这里可以使用内置的os.walk()方法。

import os

f_dir = os.path.abspath(os.path.dirname(__file__))

for root, dirs, files in os.walk(f_dir):
    print('root: ', root)
    print('dirs: ', dirs)
    print('files: ', files)

其中,root为最外级的文件夹名,dirs为root的子文件夹列表,files为root下的文件列表(不包括子文件夹内的文件)。

我们可以使用walk() 方法来遍历指定目录,累加各文件的大小,即可统计出文件夹的总大小:

import os

f_dir = os.path.abspath(os.path.dirname(__file__))

def get_dir_size(dir):
    size = 0
    for root, dirs, files in os.walk(dir):
        size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
    return size

if __name__ == '__main__':
    size = get_dir_size('../')
    print('Total size is: %.3f Mb'%(size/1024/1024))
>>> /root/PycharmProjects/test/venv/bin/python /root/PycharmProjects/test/getDirSize.py
Total size is: 18.167 Mb

Process finished with exit code 0
 
  

你可能感兴趣的:(python)