如何使用Python删除回收站中指定天数前的旧文件?
实现回收站中过期文件的定向删除
不用手动获取回收站路径,借助winshell库就能直接枚举回收站里的所有项目并筛选删除,具体实现步骤如下:
- 依赖准备
确保已经安装winshell库,没有的话用pip安装:
pip install winshell
- 核心代码实现
import winshell from datetime import datetime, timedelta def delete_old_recycle_bin_files(days_threshold): # 获取回收站操作对象 recycle_bin = winshell.recycle_bin() # 计算过期时间节点 cutoff_date = datetime.now() - timedelta(days=days_threshold) # 遍历回收站中的每个项目 for item in recycle_bin: # 获取文件被删除的时间(item.deleted_date为datetime对象) deleted_time = item.deleted_date # 判断是否超过指定天数 if deleted_time < cutoff_date: try: # 删除单个过期项目 item.delete() print(f"已删除过期文件: {item.original_filename}") except Exception as e: print(f"删除文件 {item.original_filename} 失败: {str(e)}") # 调用示例:删除回收站中删除超过7天的文件 delete_old_recycle_bin_files(7)
- 关键说明
winshell.recycle_bin()直接返回回收站的操作实例,完全不需要手动查找系统隐藏的回收站路径- 每个回收站项目的
deleted_date属性记录了文件被删除的精确时间,直接和阈值日期对比即可完成筛选 item.delete()仅删除当前选中的过期项目,不会清空整个回收站,精准符合需求- 添加异常处理可以避免因权限不足、文件被占用等问题导致程序中断
内容的提问来源于stack exchange,提问作者Brianna Drew
相关产品推荐
相关产品推荐

