【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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476709.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!