#使用python代码统计一个文件夹中所有文件的大小
#实际应用:云端传文件,普通用户和vip用户云端文件夹大小一样. 需要统计文件夹的大小
# 统计"E:\PycharmProjects\playboy_2"文件夹的大小
#拿到这个文件夹下所有的文件夹和文件
#是文件就取大小
#是文件夹就再打开这个文件夹: 文件/文件夹
#解题思想就是:
#1.根据要查看的文件夹路径,得到一个文件名列表
#2.循环取出列表中所有的文件名
#3.把文件名和给的已知路径拼接成完整路径
#4.判断完整路径是不是一个文件夹, 如果是文件夹就重复 1
#5.如果不是文件夹就计算这个完整路径文件的大小
#递归方法
import os
def func(path):
size_sum = 0
names = os.listdir(path) #2018-8-22 下面的内容 返回一个列表
for name in names: #循环列表里面的名字
f_path = os.path.join(path,name) #拼接路径 得到一个完整的路径
if os.path.isdir(f_path): #判断是否是一个文件夹
size = func(f_path)
size_sum = size_sum + size
else: #文件
size_sum += os.path.getsize(f_path)
return size_sum
ret = func("E:\PycharmProjects\playboy_2\2018-8-22")
print(ret)
#循环方法
import os
size = 0
lst = ["E:\PycharmProjects\playboy_2\2018-8-22"]
while lst:
path = lst.pop()
name_list = os.listdir(path) #得到已知文件夹内所有的文件名列表
for name in name_list: #循环取出列表中的所有文件名
f_path = os.path.join(path,name) #拼接成完整路径
if os.path.isdir(f_path): #判断完整路径是不是文件夹
lst.append(f_path)
else:
size += os.path.getsize(f_path)
print(size)