page contents

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

桌面、下载目录、微信接收文件……日积月累几百个文件,想找个上月的合同翻半天。手动分类?又是一下午。解法:用 Python 扫描目录,按扩展名 / 日期 / 关键字自动移动到对应文件夹。

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

解法:用 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. 同名覆盖:目标目录已有同名文件,shutil.move 会直接覆盖,先判断 dest.exists()。

2. 正在使用:文件被 Excel / 微信占用时移动失败,捕获异常跳过。

3. 路径太长:Windows 路径超 260 字符报错,尽量短路径或 \\?\ 前缀。

4. 误移系统文件:限定扫描目录,别拿 C:\ 开刀。

5. 删 vs 移:新手用 move 别用 os.remove,移错还能找回来。

六、工具怎么用

1. 打开「整理助手.exe」,选下载目录

2. 选规则(推荐“按类型”)

3. 先点“模拟运行”看会怎么动

4. 确认后点“开始整理”,桌面瞬间清爽

七、小结

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

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2372 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. Pack 2372 文章
  3. 小柒 2228 文章
  4. Nen 576 文章
  5. 王昭君 216 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章