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

从零写一个Python文件批量整理器:自动按类型归档桌面文件

从零写一个Python文件批量整理器:自动按类型归档桌面文件专栏:《从零写一个小工具》 | 语言:Python | 依赖:纯标准库一、场景介绍公司发的报表、浏览器下的安装包、临时截图、各种格式的文档……几个月不收拾,桌面和下载文件夹就能堆成山。手动拖文件分类?太费时间,而且拖不了几次就放弃了。这篇文章带你从零写一个小工具,把指定文件夹里的文件按类型自动归类,图片进图片夹,文档进文档夹,可执行文件单独放,整理完还给你输出一份统计报告。代码不到100行,拷走就能跑。二、需求说明这个小工具要解决这几个实际问题:指定一个待整理目录(比如桌面或下载文件夹)按文件扩展名自动分类:.jpg/.png归图片,.docx/.pdf归文档,.exe/.msi归安装包,等等如果目标分类文件夹不存在,自动创建遇到同名文件不要覆盖,自动重命名保留整理完打印一份统计报告:每类多少文件,总共多少不需要装任何第三方库,只用 Python 自带的os、shutil、pathlib。三、环境准备Python 3.7+ 就行,不用装任何东西。打开终端确认一下:python--version四、逐段代码编写4.1 定义文件类型映射先把扩展名和分类文件夹对应起来。这是整个工具的核心规则,你可以按自己习惯改:CATEGORY_MAP={"图片":[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg"],"文档":[".doc",".docx",".pdf",".txt",".md",".xls",".xlsx",".ppt",".pptx",".csv"],"视频":[".mp4",".avi",".mov",".mkv",".flv",".wmv"],"音频":[".mp3",".wav",".flac",".aac",".ogg",".m4a"],"压缩包":[".zip",".rar",".7z",".tar",".gz",".bz2"],"安装包":[".exe",".msi",".dmg",".pkg",".deb",".rpm"],"代码":[".py",".js",".html",".css",".java",".c",".cpp",".go",".rs",".json",".xml",".yaml",".yml"],}这里有个设计细节:用一个扩展名到分类的反向字典,后续查找更快,不用每次遍历:EXT_TO_CATEGORY={}forcategory,extsinCATEGORY_MAP.items():forextinexts:EXT_TO_CATEGORY[ext.lower()]=category为什么要转小写?Windows 上扩展名可能是.PDF或.pdf,统一转小写再匹配,避免漏网之鱼。4.2 获取分类文件夹名称传入一个文件路径,返回它该去哪个分类文件夹:frompathlibimportPathdefget_category(file_path:Path)-str:"""根据扩展名返回分类文件夹名称"""ext=file_path.suffix.lower()# 获取扩展名并转小写returnEXT_TO_CATEGORY.get(ext,"其他")# 未知类型丢进"其他"Path.suffix是pathlib的方法,直接拿到带点的扩展名,比如.jpg,比用字符串分割干净多了。4.3 处理重名文件同一个分类里可能已经有一个报告.pdf,再移一个报告.pdf过来,默认会覆盖。我们要保留两份:defsafe_target_path(target_dir:Path,original_name:str)
http://www.rkmt.cn/news/1292069.html

相关文章:

  • 3分钟掌握Illustrator智能填充:Fillinger插件完全指南
  • 终极FF14钓鱼辅助:渔人的直感完整使用指南与技巧
  • 开源工作流引擎ByteChef:从组件化架构到自动化编排实战
  • 告别‘炼丹’:从论文到部署,聊聊红外-可见光融合模型复现的那些‘坑’与最佳实践
  • iOS Core Animation 渲染架构详解:Render Server 与 Commit Transaction
  • 结构方程模型:R语言入门→SEM原理→lavaan全局估计→piecewiseSEM局域估计→blavaan/brms贝叶斯SEM
  • Homebrew SSL连接失败?除了换源和代理,你可能忘了检查这个Git仓库状态
  • AI智能体协作框架agentset:从单体到多智能体编排的工程实践
  • Unity Trigger / Collision检测不到的常见原因
  • 解锁OBS远程控制:obs-websocket深度实践指南
  • 大语言模型行为与知识探测:从黑箱测试到认知图谱构建
  • 拯救你的C盘空间:用FreeMove实现无痛文件迁移的完整指南
  • 基于Telegram的AI智能体框架:从原理到实践部署指南
  • 智能车竞赛实战:用3块钱的HIP6601驱动MOS半桥,搞定无线信标线圈供电
  • 使用Python lxml轻松进行网络爬取
  • 分小号免费号卡分销系统/免费宽带分销系统
  • 大气层系统:Nintendo Switch自定义固件的完整解决方案
  • 用户管理分页
  • 从滑竿到按钮:手把手教你用LVGL的‘部分’与‘状态’打造动态交互UI(ESP32/STM32通用)
  • 如何永久免费解锁Cursor Pro:终极破解工具完整指南
  • 悦川2026热销花色推荐
  • BepInEx深度解析:5大核心机制构建Unity游戏扩展生态
  • 科技中介机构如何提升服务能力与客户转化率?
  • 开源桌面效率工具moyu:用Tauri与Electron打造无感生产力看板
  • CC‑Switch安装下载-Windows 安装 CC‑Switch 完整教程【2026.5.15】
  • 免费开源:Linux微信开发者工具终极安装指南
  • ESP-SR语音识别框架:边缘AI语音交互的硬件优化与模型量化创新
  • KKS-HF_Patch终极指南:Koikatsu Sunshine增强补丁完整教程
  • 树莓派Pico微型AI服务器:TinyML边缘推理实战指南
  • 现货库存DP83848CVVX/NOPB是由 ‌TI推出的一款高性能、低功耗的 ‌10/100 Mbps 以太网物理层收发器(PHY)‌,广泛应用于工业控制、汽车电子和嵌入式网络设备中。