当前位置:首页>python>Python 办公自动化进阶:os 库加持,文件目录随心管

Python 办公自动化进阶:os 库加持,文件目录随心管

  • 2026-10-12 17:26:10
Python 办公自动化进阶:os 库加持,文件目录随心管

Python 办公自动化进阶:os 库加持,文件目录随心管

下载文件夹乱成垃圾堆?报销单、合同、发票混在一起找半天?用 os / pathlib 写个“自动整理机器人”,按类型、日期一键归位。


欢迎大家关注此公众号,后台点击按钮【免费资料】可免费获取【Python入门30节课】电子书

  1. 此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅,也感谢大家支持,我才有更新的动力

一、痛点:文件 chaos

桌面、下载目录、微信接收文件……日积月累几百个文件,想找个上月的合同翻半天。手动分类?又是一下午。

解法:用 Python 扫描目录,按扩展名 / 日期 / 关键字自动移动到对应文件夹。


二、核心原理

  • • os.listdir() / Path.iterdir() 遍历文件
  • • os.path.splitext() / Path.suffix 取扩展名
  • • os.makedirs() / Path.mkdir() 建分类目录
  • • shutil.move() 移动文件

三、核心代码

import os, shutil
from pathlib import Path

base = Path.home() / "Downloads"# 下载目录
types = {".pdf": "PDF文档", ".xlsx": "Excel表格",
".png": "图片", ".docx": "Word文档"}

for f in base.iterdir():
if f.is_file():
        dest = base / types.get(f.suffix.lower(), "其他")
        dest.mkdir(exist_ok=True)
        shutil.move(str(f), str(dest / f.name))   # 按类型归位
print(f.name, "→", dest.name)

进阶:按“修改日期”归档到 2026-08 这样的月份文件夹:

import time
from datetime import datetime
t = datetime.fromtimestamp(f.stat().st_mtime)
month_dir = base / f"{t.year}-{t.month:02d}"
month_dir.mkdir(exist_ok=True)
shutil.move(str(f), str(month_dir / f.name))

四、界面化(PyQt5 整理助手)

选“要整理的文件夹” + “整理规则”(按类型 / 按月份 / 按关键字),点“开始整理”,实时显示搬了哪些、去了哪。带“模拟运行”开关,先预览不真移,确认无误再执行。


五、常见坑

  1. 1. 同名覆盖:目标目录已有同名文件,shutil.move 会直接覆盖,先判断 dest.exists()。
  2. 2. 正在使用:文件被 Excel / 微信占用时移动失败,捕获异常跳过。
  3. 3. 路径太长:Windows 路径超 260 字符报错,尽量短路径或 \\?\ 前缀。
  4. 4. 误移系统文件:限定扫描目录,别拿 C:\ 开刀。
  5. 5. 删 vs 移:新手用 move 别用 os.remove,移错还能找回来。

六、工具怎么用

  1. 1. 打开「整理助手.exe」,选下载目录
  2. 2. 选规则(推荐“按类型”)
  3. 3. 先点“模拟运行”看会怎么动
  4. 4. 确认后点“开始整理”,桌面瞬间清爽

七、小结

os / pathlib 是自动化的“搬运工”。记住:先模拟、后执行、防覆盖、别动系统盘,文件管理从此随心。


八、社媒文案(公众号 + 小红书)

公众号标题:下载文件夹乱成垃圾堆?10 行 Python 代码,文件自动归位

小红书正文:
下载目录乱到找不到上月的合同?😤 我用 os + pathlib 写了个自动整理脚本,按类型/月份一键归位,PDF 进文档夹、xlsx 进表格夹,3 秒清爽!还加了“模拟运行”,先看后动不翻车~

标签:
#Python#文件整理#办公自动化#效率工具#pathlib#桌面整理#打工人#懒人神器

最新文章

随机文章