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