zoukankan      html  css  js  c++  java
  • 利用os模块求一个文件夹的大小。

    一、递归方法

     1 def size(path):  #给定一个初始的文件夹路径
     2     num = 0     
     3     list_name = os.listdir(path)  #利用os模块方法,以列表的形式获得该文件夹下面的所有文件或者文件夹名称
     4     for i in list_name:
     5         file_name = os.path.join(path,i)  #循环的i是文件或者文件夹的名称,需要拼接出绝对路径
     6         if os.path.isdir(file_name):      #判断该路径是否为文件夹
     7             num1 = size(file_name)      #***此处一定要用一个变量来接收递归函数的返回值
     8             num += num1
     9         else:
    10             num += os.path.getsize(file_name)    #计算文件的大小
    11     return num
    12 print(size("F:pythonhomework"))

    二、循环、堆栈思想

     1 def func(lst):  #先将文件夹的路径以列表的形式传人函数
     2     size = 0
     3     while lst:  #列表只要不为空就执行循环
     4         path = lst.pop()   #将列表中最后一个路径取出来
     5         list_name = os.listdir(path)
     6         for i in list_name:
     7             path_name = os.path.join(path,i)
     8             if os.path.isdir(path_name):
     9                 lst.append(path_name)  #***如果是文件夹就将该路径加到列表中
    10             else:
    11                 size += os.path.getsize(path_name)
    12     return size
    13 lst = ["F:pythonhomework"]
    14 print(func(lst))
  • 相关阅读:
    前端一站式学习地址
    springboot注解开发
    java中的四种内部类使用(1)
    java内存回收机制
    TweenMax详解
    flash渲染机制
    通过字符串名访问变量
    总结调用Flash的几种方法
    flex buider2 的注册
    转:FlexChn.Cn Adobe Flex最佳学习路线
  • 原文地址:https://www.cnblogs.com/qq849784670/p/9514473.html
Copyright © 2011-2022 走看看