我们在做深度学习的时候面临这样一个问题,C盘满了,但是又不知道是哪个文件夹,下面这个代码将给大家分享检查的代码
importosimportdatetimedefget_folder_size(folder):"""获取文件夹大小(字节)"""total=0try:fordirpath,dirnames,filenamesinos.walk(folder):forfinfilenames:fp=os.path.join(dirpath,f)ifos.path.exists(fp):total+=os.path.getsize(fp)except(PermissionError,FileNotFoundError):passreturntotaldefget_folder_size_gb(folder):returnget_folder_size(folder)/(1024**3)defanalyze_disk(root_dir,min_size_gb=0.1,max_depth=3):"""分析磁盘,找出大文件夹"""results=[]defwalk_dir(dirpath,depth):ifdepth>max_depth:returntry:items=os.listdir(dirpath)except(PermissionError,FileNotFoundError):returnforiteminitems:ifitem.startswith('.'):# 跳过隐藏文件夹continueitem_path=os.path.join(dirpath,item)ifos.path.isdir(item_path):size_gb=get_folder_size_gb(item_path)ifsize_gb>=min_size_gb:results.append({'path':item_path,'size_gb':size_gb,'depth':depth})walk_dir(item_path,depth+1)walk_dir(root_dir,0)# 按大小排序results.sort(key=lambdax:x['size_gb'],reverse=True)returnresults# ===== 分析 C 盘用户目录 =====user_dir=r"C:\Users\你的用户名"print(f"正在分析{user_dir}中的大文件夹...")print("这可能需要几分钟,请耐心等待...\n")big_folders=analyze_disk(user_dir,min_size_gb=0.5,max_depth=3)print("="*80)print("C 盘大文件夹排名(>500MB)")print("="*80)fori,iteminenumerate(big_folders[:20],1):print(f"{i:2}.{item['size_gb']:.2f}GB{item['path']}")