环境

os: centos7
python : 3.7

实现功能

  • 统计当目录下的文件夹有文件的大小,单位KB/MB/B;

    代码实现

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    import os,math
    summary=0
    
    def size_file(str2):
      global summary
      summary=summary+os.path.getsize(str2)
      
    def size_dir(str1):
      dlist=os.listdir(str1)
      # print("正在统计目录:"+str1)
      for f in dlist:
          file1=os.path.join(str1,f)
          if os.path.isfile(file1):
              size_file(file1)
          else:
              size_dir(file1)
    
    def init_os(path_init):
      if os.path.exists(path_init):
          # 文件存在计算文件的大小;
          size_dir(path_init)
          if 1024 <= math.ceil(summary) <= 1000000:
              print("[{}]目录:  ".format(path_init)+str(summary/1024)+'KB')
          elif math.ceil(summary) > 1000000:
              print("[{}]目录:  ".format(path_init)+str((summary/1024)/1024)+'MB')
          else:
              print("[{}]目录:  ".format(path_init)+str(summary)+'B')
      else:
          print("目录不存在!,请重新输入.")
    
    def main(local_path):
      dblist=os.listdir(local_path)
      for d in dblist:
          file2 = os.path.join(local_path, d)
          # 统计当前目录下文件的大小;
          if os.path.isfile(file2):
              size_file(file2)
              if 1024 <= math.ceil(summary) <= 1000000:
                  print("[{}]:  ".format(file2) + str(summary / 1024) + 'KB')
              elif math.ceil(summary) > 1000000:
                  print("[{}]:  ".format(file2) + str((summary / 1024) / 1024) + 'MB')
              else:
                  print("[{}]:  ".format(file2) + str(summary) + 'B')
          # 统计当前目录下文件夹大小
          else:
              init_os(file2)
    
    if __name__ == '__main__':
      path=os.getcwd()
      main(path)
    

MothurView
7 声望1 粉丝