吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4403|回复: 7
收起左侧

[Python 转载] 【Python】【笔记】统计指定目录下每个文件的大小(包括文件夹)

  [复制链接]
hustlzp 发表于 2019-1-9 08:42
本帖最后由 hustlzp 于 2019-1-9 09:19 编辑

[Python] 纯文本查看 复制代码
# 使用Python 3运行
import os
# 获取文件夹下的文件大小  [url=https://www.jianshu.com/p/a5ec32322fd6]https://www.jianshu.com/p/a5ec32322fd6[/url]
def Get_Dir_Size(dir):
    size = 0
    for root, dirs, files in os.walk(dir):
        size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
    return size

# python 文件大小显示kb、mb或gb等  [url=https://blog.csdn.net/mp624183768/article/details/84892999]https://blog.csdn.net/mp624183768/article/details/84892999[/url]
def Covert_File_Size(size):
    kb = 1024;
    mb = kb * 1024;
    gb = mb * 1024;
    tb = gb * 1024;
    if size >= tb:
        return "%.1fTB" % float(size / tb)
    if size >= gb:
        return "%.1fGB" % float(size / gb)
    if size >= mb:
        return "%.1fMB" % float(size / mb)
    if size >= kb:
        return "%.1fKB" % float(size / kb)

os.chdir(r'C:\Program Files')   #更改当前工作目录

def Print_Size_Of_Current_Dir():
    file_size = dict()  # 创建一个空的字典,用来存储我们的结果
    current_work_dir = os.curdir #指代当前目录,在windows系统下是'.'
    # current_work_dir = os.getcwd()   #返回当前工作目录
    all_file = os.listdir(current_work_dir)  #用列表列举当前目录中的文件名
    for each_file in all_file:   #依次提取这个列表中的每一个元素(路径)
        if os.path.isdir(each_file) == True:   #判断这个路径是否表示文件夹
            file_size.setdefault(each_file,Covert_File_Size(Get_Dir_Size(each_file)))
        else:  # 如果不是文件夹,即是有后缀的那些文件
            file_size.setdefault(each_file, Covert_File_Size(os.path.getsize(each_file)))
    #下面我们来打印结果
    for type_file in file_size:
        print('【%s】:【%s】'%(type_file,file_size[type_file]))

Print_Size_Of_Current_Dir()



【AMD】:【276.1MB】
【Application Verifier】:【348.7KB】
【ATOMI】:【140.8MB】
【Bandizip】:【18.2MB】
【Beyond Compare 4】:【48.0MB】
【Bluesky Frame Rate Converter】:【2.1MB】
【Bonjour】:【600.7KB】
【Common Files】:【825.5MB】
【DAUM】:【89.0MB】
【desktop.ini】:【None】
【Detong】:【56.6MB】
【Ditto】:【35.5MB】
【Everything】:【2.8MB】
【Honeyview】:【27.0MB】
【internet explorer】:【2.5MB】
【JetBrains】:【741.9MB】
【Just Great Software】:【21.9MB】
【LockHunter】:【7.5MB】
【Logitech Gaming Software】:【318.0MB】
【MATLAB】:【13.7GB】
【Microsoft Analysis Services】:【101.2MB】
【Microsoft Office】:【1.4GB】
【Microsoft SQL Server】:【1.5MB】
【Microsoft VS Code】:【187.3MB】
【Microsoft.NET】:【702.1KB】
【MSBuild】:【25.2KB】
【R】:【194.0MB】
【Realtek】:【46.5MB】
【Reference Assemblies】:【34.9MB】
【rempl】:【26.7MB】
【Rockstar Games】:【99.1MB】
【RStudio】:【488.7MB】
【Uninstall Information】:【None】
【Windows Defender】:【18.6MB】
【Windows Defender Advanced Threat Protection】:【11.3MB】
【Windows Mail】:【620.5KB】
【Windows Media Player】:【4.6MB】
【Windows Multimedia Platform】:【45.5KB】
【windows nt】:【7.5MB】
【Windows Photo Viewer】:【5.9MB】
【Windows Portable Devices】:【45.5KB】
【Windows Security】:【103.7KB】
【Windows Sidebar】:【None】
【WindowsApps】:【None】
【WindowsPowerShell】:【2.5MB】
【Wolfram Research】:【10.4GB】

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
王星星 发表于 2019-1-9 09:08
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| hustlzp 发表于 2019-1-9 09:20
我这个搜索的还有点慢,可能是文件夹太大(超过30G),往下深入的层数较多导致。
后期我看能不能再优化下
kmwell 发表于 2019-1-9 09:27
li231475 发表于 2019-1-9 09:39
这个功能的难点,应该是遍历文件下的子文件夹吧
sitiger 发表于 2019-1-9 09:40
os.path.getsize()?
cccdyl 发表于 2019-1-9 10:29
支持和鼓励在论坛中交流学习体会
gunxsword 发表于 2019-1-9 11:00
感谢分享,收下了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 05:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表