Python自动整理截图需优先从文件名提取时间戳,失败则回退到文件元数据时间;按年/月/日创建多级目录,安全移动并处理重名,支持命令行参数与dry-run调试。

用Python自动整理截图,核心是提取文件创建时间或修改时间,按年月日分文件夹归类。关键不在“智能”,而在准确读取时间、避免覆盖重名、适配不同系统的时间字段差异。
提取截图的真实时间戳
Windows截图默认用系统当前时间命名(如“屏幕截图(1).png”),但实际时间藏在文件元数据里;macOS和部分安卓投屏截图则常带时间戳在文件名中(如“Screenshot 2024-05-20 at 14.32.18.png”)。所以优先尝试从文件名解析,失败再 fallback 到 os.path.getmtime() 或 os.stat().st_birthtime(macOS)。
- 用 re.search(r'(\d{4}-\d{2}-\d{2}).*(\d{2}\.\d{2}\.\d{2})', name) 匹配常见 macOS/ iOS 截图名
- 对 Windows 默认命名,直接取 os.path.getctime(path)(创建时间),但注意:NTFS 下该值可能被复制/移动操作刷新,此时改用 getmtime 更稳妥
- 统一转为 datetime 对象,便于后续格式化成“2024/05/20”这类路径
按时间生成多级目标路径
不建议平铺所有截图到一个文件夹。推荐结构:./Screenshots/2024/05/20/,这样既清晰又方便 Finder / 文件管理器按年份筛选。
- 用 dt.strftime('%Y/%m/%d') 生成路径字符串,再用 os.makedirs(path, exist_ok=True) 一键建好三级目录
- 如果某天截图超百张,可加二级子目录如 2024/05/20/AM 和 2024/05/20/PM,靠 dt.hour 判断
- 路径中避免空格和中文,全部用标准 ASCII 字符,兼容 Linux/macOS/Windows
安全移动 + 重名处理
直接 shutil.move 可能因重名覆盖旧文件。必须检查目标路径是否已存在同名文件。
标签: linux python windows 安卓 工具 mac ios macos win cos
还木有评论哦,快来抢沙发吧~