Python进阶——统计电脑指定文件夹大小以及文件和子文件夹数量

Python进阶—统计指定文件夹大小以及文件和子文件夹数量

代码需求:

编写程序,统计指定文件夹大小以及文件和子文件夹数量。本例也属于系统运维范畴,可用于磁盘配额的计算,例如email、博客、FTP、快盘等系统中每个账号所占空间大小的统计。

代码实现

import os
totalSize = 0
fileNum = 0
dirNum = 0
def visitDir(path):
    global totalSize
    global fileNum
    global dirNum
    for lists in os.listdir(path):
        sub_path = os.path.join(path, lists)
        if os.path.isfile(sub_path):
            fileNum = fileNum+1                              #统计文件数量
            totalSize = totalSize+os.path.getsize(sub_path)  #统计文件总大小
        elif os.path.isdir(sub_path):
            dirNum = dirNum+1                                #统计文件夹数量
            visitDir(sub_path)                               #递归遍历子文件夹
def main(path):
    if not os.path.isdir(path):
        print('Error:"', path, '" is not a directory or does not exist.')
        return
    visitDir(path)

def sizeConvert(size):                                   #单位换算
    K, M, G = 1024, 1024**2, 1024**3
    if size >= G:
        return str(size/G)+'G Bytes'
    elif size >= M:
        return str(size/M)+'M Bytes'
    elif size >= K:
        return str(size/K)+'K Bytes'
    else:
        return str(size)+'Bytes'
def output(path):
    print('The total size of '+path+' is:'+sizeConvert(totalSize)
          +'('+str(totalSize)+' Bytes)')
    print('The total number of files in '+path+' is:',fileNum)
    print('The total number of directories in '+path+' is:',dirNum)

if __name__=='__main__':
    path = r'E:\python_work'
    main(path)
    output(path)

编译结果

博主所查看的文件目录为电脑上的E:\python_work,即该目录文件下的所有文件
Python进阶——统计电脑指定文件夹大小以及文件和子文件夹数量_第1张图片

你可能感兴趣的:(python进阶,python)