python获取指定路径中所有文件的大小的和
import os def get_size(path): size = 0 info = [os.path.join(path, i) for i in os.listdir(path)] #将所有的文件路径都拼接成绝对路径 for i in info: if os.path.isfile(i): size += os.path.getsize(i) #循环判断是否是文件,是文件就获取size进行累加 else: size += get_size(i) #是目录的话,进行递归 else: return size #这里的return在最内层的递归函数(path路径中没有目录了)中是返回目录下的所有文件的size的和, # 将结果返回给上次函数再进行size+=的累加操作,这样循环到最外层的函数,就是得到了所有文件的size def get_size2(path): lst = [path] size = 0 while lst: #使用了堆栈的思想, path = lst.pop() info = [os.path.join(path, i) for i in os.listdir(path)] for j in info: if os.path.isdir(j): #将子目录添加到lst的列表,下次循环就处理子目录 lst.append(j) else: size += os.path.getsize(j) return size