吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[学习记录] python查看windows文件夹的大小

[复制链接]
huideip 发表于 2024-11-5 23:02
C盘快满了,想根据文件夹大小判断删掉一些东西,弹窗选择文件夹,获取子文件夹的属性,打印文件夹大小并按照由大至小排名。GPT写的,有问题喷GPT。

[Python] 纯文本查看 复制代码
import os
import tkinter as tk
from tkinter import filedialog

def get_folder_size(folder_path):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(folder_path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            if os.path.isfile(fp):
                total_size += os.path.getsize(fp)
    return total_size

def main():
    # 创建Tkinter窗口
    root = tk.Tk()
    root.withdraw()  # 隐藏主窗口

    # 弹出文件夹选择对话框
    folder_path = filedialog.askdirectory(title="选择文件夹")

    if folder_path:
        print(f"文件夹: {folder_path}\n")
        
        # 存储子文件夹名称和大小的列表
        folder_sizes = []
        total_size = 0  # 用于汇总所有子文件夹的总大小

        # 遍历文件夹中的每个子文件夹
        for subfolder in os.listdir(folder_path):
            subfolder_path = os.path.join(folder_path, subfolder)
            if os.path.isdir(subfolder_path):
                size = get_folder_size(subfolder_path)
                folder_sizes.append((subfolder, size))
                total_size += size  # 累加每个子文件夹的大小到总大小
        
        # 按大小排序(从大到小)
        folder_sizes.sort(key=lambda x: x[1], reverse=True)

        # 打印排序后的结果
        for subfolder, size in folder_sizes:
            print(f"子文件夹: {subfolder} - 大小: {size / (1024 ** 2):.2f} MB")
        
        # 打印汇总信息
        print("\n汇总:")
        print(f"总大小: {total_size / (1024 ** 2):.2f} MB")
    else:
        print("未选择文件夹")

if __name__ == "__main__":
    main()


ddd.png

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

1045837055lucy 发表于 2024-11-6 14:16
兄台,给你推荐这款软件,方便的多。
Snap2html 2.1.4修改版
https://www.52pojie.cn/thread-1814029-1-1.html
(出处: 吾爱破解论坛)
LightswornSnow 发表于 2024-11-6 19:55
Randle 发表于 2024-11-6 20:53
个人觉得Python的文件读写不如C++方便,Python解释型没C++方便,建议学习C++
 楼主| huideip 发表于 2024-11-6 22:46
1045837055lucy 发表于 2024-11-6 14:16
兄台,给你推荐这款软件,方便的多。
Snap2html 2.1.4修改版
https://www.52pojie.cn/thread-1814029-1-1 ...

太棒啦。好用多了。感谢~
 楼主| huideip 发表于 2024-11-6 22:47
LightswornSnow 发表于 2024-11-6 19:55
spacesniffer也是很现成直观的工具了

涨知识了,谢谢
pyjiujiu 发表于 2024-11-12 13:39
本帖最后由 pyjiujiu 于 2024-11-12 13:41 编辑

不够优雅阿,可以换个方案

[Python] 纯文本查看 复制代码
from pathlib import Path
folder_path = Path('.')
list_folder = []
for f in folder_path.glob('*'):
    if not f.is_dir():
        continue
    _size = 0
    for file in f.rglob('*.*'):
        _size += file.stat().st_size
    list_folder.append((f,_size))
final_folder_list = sorted(list_folder,key=lambda x: x[1],reverse=True)
 楼主| huideip 发表于 2024-11-14 10:18
pyjiujiu 发表于 2024-11-12 13:39
不够优雅阿,可以换个方案

[mw_shl_code=python,true]from pathlib import Path

不愧是大佬~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 12:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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