当前位置: 首页 > article >正文

【Python实战】AI自动整理文件:告别桌面混乱

用PythonAI打造一个桌面文件整理助手让混乱的桌面瞬间清爽一、痛点桌面文件的灾难现场我的桌面曾经是这样的截图、下载文件、临时文档混在一起找文件要翻半天重要文件被淹没在垃圾文件里手动整理太麻烦坚持不了3天直到我写了这个AI文件整理脚本…二、核心思路AI智能分类不用手动设置规则让AI根据文件名智能判断文件类型三、完整代码#!/usr/bin/env python3 # -*- coding: utf-8 -*- AI文件整理助手 - 自动分类桌面文件 作者技术实战派 import os import shutil from pathlib import Path from datetime import datetime class AIFileOrganizer: AI驱动的文件整理器 def __init__(self, source_dir, target_dirNone): self.source_dir Path(source_dir) self.target_dir Path(target_dir) if target_dir else self.source_dir / 已整理 self.stats {moved: 0, skipped: 0, errors: 0} # 定义分类规则 self.rules { 截图: { keywords: [截图, screen, screencapture, qq截图, 微信截图], exts: [.png, .jpg, .jpeg], folder: 图片/截图 }, 合同文档: { keywords: [合同, 协议, agreement, contract], exts: [.pdf, .doc, .docx], folder: 文档/合同 }, 财务票据: { keywords: [发票, 收据, invoice, receipt, 报销], exts: [.pdf, .png, .jpg], folder: 文档/财务 }, 图片素材: { keywords: [img, image, photo, pic], exts: [.jpg, .jpeg, .png, .gif, .bmp, .webp], folder: 图片/素材 }, PDF文档: { exts: [.pdf], folder: 文档/PDF }, 办公软件: { keywords: [word, excel, ppt, doc, xls], exts: [.doc, .docx, .xls, .xlsx, .ppt, .pptx], folder: 文档/办公 }, 压缩包: { exts: [.zip, .rar, .7z, .tar, .gz], folder: 压缩包 }, 安装包: { keywords: [setup, install, installer], exts: [.exe, .msi, .dmg, .pkg], folder: 软件/安装包 }, 视频: { exts: [.mp4, .avi, .mkv, .mov, .wmv, .flv], folder: 视频 }, 音频: { exts: [.mp3, .wav, .flac, .aac, .ogg], folder: 音频 }, 代码文件: { exts: [.py, .js, .html, .css, .java, .cpp, .c, .go, .rs], folder: 代码 } } def ai_classify(self, filename): AI智能分类根据文件名和扩展名判断类型 name_lower filename.lower() ext Path(filename).suffix.lower() # 按优先级匹配规则 for category, rule in self.rules.items(): # 检查关键词 keywords rule.get(keywords, []) if any(kw.lower() in name_lower for kw in keywords): return rule[folder] # 检查扩展名 exts rule.get(exts, []) if ext in exts: return rule[folder] # 默认分类按日期 return f其他/{datetime.now().strftime(%Y-%m)} def organize(self, dry_runFalse): 执行整理 :param dry_run: 试运行模式只打印不移动 print(f 源目录: {self.source_dir}) print(f 目标目录: {self.target_dir}) print(f 扫描文件中...\n) # 遍历源目录 for item in self.source_dir.iterdir(): if item.is_dir(): continue # 跳过目录 filename item.name # 跳过脚本自身 if filename os.path.basename(__file__): continue # AI分类 category self.ai_classify(filename) target_folder self.target_dir / category # 显示结果 action 【模拟】 if dry_run else 【移动】 print(f{action} {filename:30} → {category}) if not dry_run: try: # 创建目标目录 target_folder.mkdir(parentsTrue, exist_okTrue) # 处理重名文件 target_path target_folder / filename counter 1 while target_path.exists(): stem Path(filename).stem suffix Path(filename).suffix target_path target_folder / f{stem}_{counter}{suffix} counter 1 # 移动文件 shutil.move(str(item), str(target_path)) self.stats[moved] 1 except Exception as e: print(f ❌ 错误: {e}) self.stats[errors] 1 else: self.stats[moved] 1 # 打印统计 print(f\n{*50}) print(f 整理完成) print(f 已处理: {self.stats[moved]} 个文件) print(f 错误: {self.stats[errors]} 个) print(f{*50}) def main(): 主函数 import argparse parser argparse.ArgumentParser(descriptionAI文件整理助手) parser.add_argument(path, nargs?, default., help要整理的目录默认当前目录) parser.add_argument(--output, -o, help输出目录默认在源目录创建已整理) parser.add_argument(--dry-run, -d, actionstore_true, help试运行模式不实际移动文件) args parser.parse_args() # 创建整理器 organizer AIFileOrganizer(args.path, args.output) # 执行整理 organizer.organize(dry_runargs.dry_run) if __name__ __main__: main()四、使用方法安装依赖# 无需额外依赖使用Python标准库 python --version # 需要 Python 3.6试运行推荐先测试python file_organizer.py ~/Desktop --dry-run正式整理# 整理桌面 python file_organizer.py ~/Desktop # 整理下载文件夹 python file_organizer.py ~/Downloads # 指定输出目录 python file_organizer.py ~/Desktop -o ~/Documents/已整理五、运行效果整理前桌面/ ├── 微信截图_20260402123456.png ├── 合同-技术服务-v3.pdf ├── 发票-办公用品.jpg ├── setup_python_3.12.exe ├── project_backup.zip ├── 临时笔记.txt └── ...整理后已整理/ ├── 图片/ │ └── 截图/ │ └── 微信截图_20260402123456.png ├── 文档/ │ ├── 合同/ │ │ └── 合同-技术服务-v3.pdf │ └── 财务/ │ └── 发票-办公用品.jpg ├── 软件/ │ └── 安装包/ │ └── setup_python_3.12.exe ├── 压缩包/ │ └── project_backup.zip └── 其他/ └── 2026-04/ └── 临时笔记.txt六、进阶扩展添加自定义规则# 在 __init__ 中添加 self.rules[我的项目] { keywords: [项目, project], exts: [.md, .txt], folder: 项目文档 }按文件大小分类def classify_by_size(self, file_path): size file_path.stat().st_size if size 100 * 1024 * 1024: # 100MB return 大文件 return None定时自动整理Windows任务计划# 创建定时任务每天自动整理桌面 schtasks /create /tn AI文件整理 /tr python C:\tools\file_organizer.py %USERPROFILE%\Desktop /sc daily /st 18\:00七、踩坑记录中文文件名乱码使用 Path 对象处理避免编码问题文件被占用跳过正在使用的文件记录错误日志重复文件名自动添加序号避免覆盖误分类关键词匹配优先级高于扩展名八、总结这个脚本帮我✅ 每天节省 10 分钟整理时间✅ 桌面从此清爽整洁✅ 找文件效率提升 3 倍✅ 再也不怕文件堆积代码已开源欢迎 Star 和 Fork

相关文章:

【Python实战】AI自动整理文件:告别桌面混乱

用PythonAI打造一个桌面文件整理助手,让混乱的桌面瞬间清爽 一、痛点:桌面文件的"灾难现场" 我的桌面曾经是这样的: 截图、下载文件、临时文档混在一起 找文件要翻半天 重要文件被淹没在垃圾文件里 手动整理太麻烦,坚持…...

DocHub二次开发指南:自定义功能扩展与API集成

DocHub二次开发指南:自定义功能扩展与API集成 【免费下载链接】DocHub 参考百度文库,使用Beego(Golang)开发的开源文库系统 项目地址: https://gitcode.com/gh_mirrors/do/DocHub DocHub是基于Beego框架(Golang…...

TypeScript组件库终极指南:Arco Design类型定义与接口设计最佳实践

TypeScript组件库终极指南:Arco Design类型定义与接口设计最佳实践 【免费下载链接】arco-design A comprehensive React UI components library based on Arco Design 项目地址: https://gitcode.com/gh_mirrors/ar/arco-design Arco Design是一个基于TypeS…...

Cockpit CMS监控与日志:10个实用技巧助你实时追踪系统运行状态

Cockpit CMS监控与日志:10个实用技巧助你实时追踪系统运行状态 【免费下载链接】cockpit Add content management functionality to any site - plug & play / headless / api-first CMS 项目地址: https://gitcode.com/gh_mirrors/coc/cockpit Cockpit …...

关联分析——从购物篮到推荐引擎的算法演进

1. 从购物篮到推荐引擎的关联分析演进 记得我第一次接触关联分析是在2015年,当时在一家零售企业做数据分析。老板扔给我一堆购物小票数据,让我找出"像啤酒和尿布那样的神奇组合"。那时候我才明白,原来数据里藏着这么多有趣的秘密。…...

终极Cursor Pro破解教程:告别免费限制,解锁无限AI编程体验

终极Cursor Pro破解教程:告别免费限制,解锁无限AI编程体验 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve r…...

终极TensorFlow Rust数学运算指南:从基础算术到复杂函数完全掌握

终极TensorFlow Rust数学运算指南:从基础算术到复杂函数完全掌握 【免费下载链接】rust Rust language bindings for TensorFlow 项目地址: https://gitcode.com/gh_mirrors/rust/rust TensorFlow Rust为开发者提供了强大的数学运算能力,通过Rust…...

UniApp项目实战:手把手教你用云函数搞定UniPush 2.0服务端消息推送

UniPush 2.0云函数实战:从零构建高可用消息推送系统 在移动应用生态中,消息推送是维系用户活跃度的关键触达手段。UniPush 2.0作为DCloud推出的新一代推送服务,通过云函数与厂商通道的深度整合,解决了传统推送方案中离线到达率低、…...

UI-Grid 终极贡献指南:如何从零开始参与开源项目并提交完美代码

UI-Grid 终极贡献指南:如何从零开始参与开源项目并提交完美代码 【免费下载链接】ui-grid UI Grid: an Angular Data Grid 项目地址: https://gitcode.com/gh_mirrors/ui/ui-grid UI-Grid 作为一款基于 Angular 的数据表格组件,为开发者提供了强大…...

TOAST UI Chart仪表盘开发终极指南:Gauge图表在企业监控中的完整应用方案

TOAST UI Chart仪表盘开发终极指南:Gauge图表在企业监控中的完整应用方案 【免费下载链接】tui.chart 🍞📊 Beautiful chart for data visualization. 项目地址: https://gitcode.com/gh_mirrors/tu/tui.chart TOAST UI Chart仪表盘开…...

CameraKit-Android终极社区贡献指南:从新手到核心开发者的完整教程

CameraKit-Android终极社区贡献指南:从新手到核心开发者的完整教程 【免费下载链接】camerakit-android Library for Android Camera 1 and 2 APIs. Massively increase stability and reliability of photo and video capture on all Android devices. 项目地址:…...

TOAST UI Chart错误处理与调试终极指南:10个常见问题解决方案大全

TOAST UI Chart错误处理与调试终极指南:10个常见问题解决方案大全 【免费下载链接】tui.chart 🍞📊 Beautiful chart for data visualization. 项目地址: https://gitcode.com/gh_mirrors/tu/tui.chart TOAST UI Chart是一款功能强大的…...

终极指南:Graph Nets从入门到精通 - 深度解析图神经网络消息传递机制

终极指南:Graph Nets从入门到精通 - 深度解析图神经网络消息传递机制 【免费下载链接】graph_nets Build Graph Nets in Tensorflow 项目地址: https://gitcode.com/gh_mirrors/gr/graph_nets Graph Nets是DeepMind开发的图神经网络库,专为在Tens…...

Redacted Font版本演进历史:从初版到现在的完整功能升级指南

Redacted Font版本演进历史:从初版到现在的完整功能升级指南 【免费下载链接】redacted-font Keep your wireframes free of distracting Lorem Ipsum. 项目地址: https://gitcode.com/gh_mirrors/re/redacted-font Redacted Font是一款专为UI/UX设计师和前端…...

timeago.js错误处理终极指南:快速解决常见问题的完整教程

timeago.js错误处理终极指南:快速解决常见问题的完整教程 【免费下载链接】timeago.js :clock8: :hourglass: timeago.js is a tiny(2.0 kb) library used to format date with *** time ago statement. 项目地址: https://gitcode.com/gh_mirrors/ti/timeago.js …...

深入解析BulletinBoard:iOS上下文卡片库的完整架构指南与核心实现

深入解析BulletinBoard:iOS上下文卡片库的完整架构指南与核心实现 【免费下载链接】BulletinBoard General-purpose contextual cards for iOS 项目地址: https://gitcode.com/gh_mirrors/bu/BulletinBoard BulletinBoard是一个功能强大的iOS库,专…...

图网络梯度计算与反向传播:自动微分技术的完整指南

图网络梯度计算与反向传播:自动微分技术的完整指南 【免费下载链接】graph_nets Build Graph Nets in Tensorflow 项目地址: https://gitcode.com/gh_mirrors/gr/graph_nets 在深度学习领域,图网络(Graph Networks)凭借其处…...

Redacted Font:企业级产品设计的终极保密字体应用指南

Redacted Font:企业级产品设计的终极保密字体应用指南 【免费下载链接】redacted-font Keep your wireframes free of distracting Lorem Ipsum. 项目地址: https://gitcode.com/gh_mirrors/re/redacted-font Redacted Font是一款专为产品设计师和开发者设计…...

cool-admin(midway版)前端权限指令:自定义指令实现权限控制的完整指南

cool-admin(midway版)前端权限指令:自定义指令实现权限控制的完整指南 【免费下载链接】cool-admin-midway 🔥 cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midwa…...

GHelper:华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验

GHelper:华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Fl…...

第6章 数据类型转换-6.1 转换为整数

通过使用int()函数可以将仅含有数字的字符串或浮点数转换为十进制整数。其语法格式如下:int([x [, base]])其中,参数x为可选参数,表示仅含有数字的字符串或浮点数,如果省略该参数,则该函数返回0;参数base为…...

随着AI和电商重塑消费者购买行为,全球美妆市场增长10%

随着数字优先和AI影响下的全球电商加速发展,线上销售额增速达到线下门店的6倍 全球消费者情报领军企业NielsenIQ (NYSE:NIQ)今日发布《2026年美妆行业现状报告》。报告显示,全球美妆市场同比增长10%,电商销售额增速达到线下门店的6倍。该结果…...

iView组件TypeScript类型推断:提升开发体验的5个高级技巧

iView组件TypeScript类型推断:提升开发体验的5个高级技巧 【免费下载链接】iview A high quality UI Toolkit built on Vue.js 2.0 项目地址: https://gitcode.com/gh_mirrors/iv/iview iView是一个基于Vue.js 2.0的高质量UI组件库,为开发者提供了…...

为什么说降AI率不等于降质量从算法角度看本质

“用了工具处理,论文会不会变差?” 这是使用降AI率工具前很多同学最担心的问题。这篇文章从算法逻辑出发,把这个问题说清楚。 简短结论:好的降AI工具不会降低论文质量;差的工具会。判断哪个是好工具,这篇…...

训练自定义游戏,构建Gymnasium训练环境

认识Gymnasium使用stable_baseline3只需要定义好Gymnasium环境,关注训练的奖励机制,将重点放在业务的开发上而不是复杂的算法。Gymnasium提供了几个核心的api:方法功能返回值reset()将环境重置为初始状态,开始新回合。obs, infost…...

AI率降完又反弹原因在这里解决方案也在

论文AI率降到15%,隔了一周再测,又变成了24%。 这个情况不是你的错,也不是工具骗你,而是有几个实际原因导致的。这篇文章解释清楚原因,然后给解决方案。 AI率反弹的3个真实原因 原因一:检测系统更新了 这…...

如何设计高效的Emscripten与WebAssembly接口:平衡简洁与完整的终极指南

如何设计高效的Emscripten与WebAssembly接口:平衡简洁与完整的终极指南 【免费下载链接】emscripten Emscripten: An LLVM-to-WebAssembly Compiler 项目地址: https://gitcode.com/gh_mirrors/em/emscripten Emscripten作为一款强大的LLVM-to-WebAssembly编…...

Qwen-Image-Layered快速部署:ComfyUI镜像一键启动与配置

Qwen-Image-Layered快速部署:ComfyUI镜像一键启动与配置 1. 引言:图像分层的革命性突破 1.1 传统图像编辑的痛点 在常规的图像处理流程中,我们常常遇到一个根本性难题:图像一旦生成或拍摄完成,就变成了一个"不…...

XXL-SSO开源项目未来展望:技术趋势与roadmap解读

XXL-SSO开源项目未来展望:技术趋势与roadmap解读 XXL-SSO作为一款分布式单点登录框架,已在众多企业中得到广泛应用,为多系统统一认证提供了轻量级且高扩展性的解决方案。随着分布式系统架构的不断演进,XXL-SSO正面临新的技术挑战…...

vue-treeselect源码深度剖析:理解组件内部工作原理

vue-treeselect源码深度剖析:理解组件内部工作原理 【免费下载链接】vue-treeselect A multi-select component with nested options support for Vue.js 项目地址: https://gitcode.com/gh_mirrors/vu/vue-treeselect vue-treeselect是一个功能强大的Vue.js…...