如何使用Python自动创建按年/月/日层级划分的文件夹
实现按年/月/日层级自动创建文件夹的Python方案
核心逻辑
不需要安装第三方依赖,直接用Python内置模块实现:
- 用
datetime模块获取当前的年、月、日信息 - 用
pathlib模块处理跨平台路径,自动创建多级目录
单次运行脚本
运行一次即可生成当前时间对应的年/月/日三级文件夹,已存在的文件夹不会重复创建、不会报错:
from datetime import date from pathlib import Path # 可自定义根目录,比如 Path("/home/user/工作记录") 或者 Path("D:/项目文档") root_dir = Path.cwd() # 获取当前日期,月份、日期自动补零为两位格式 current_date = date.today() year = str(current_date.year) month = f"{current_date.month:02d}" day = f"{current_date.day:02d}" # 拼接完整路径:根目录/年/月/日 target_dir = root_dir / year / month / day # 创建文件夹,parents=True自动创建不存在的上级目录,exist_ok=True已存在则跳过 target_dir.mkdir(parents=True, exist_ok=True) print(f"文件夹已确认存在:{target_dir}")
全自动化无人值守方案
要实现随时间推移自动生成对应文件夹,不需要手动运行脚本,有两种常用实现方式:
方案1:内置定时循环(适合长期运行的设备)
脚本后台常驻,每天自动执行一次创建逻辑:
from datetime import date from pathlib import Path import time root_dir = Path.cwd() def create_daily_dir(): current_date = date.today() year = str(current_date.year) month = f"{current_date.month:02d}" day = f"{current_date.day:02d}" target_dir = root_dir / year / month / day target_dir.mkdir(parents=True, exist_ok=True) print(f"{current_date} 文件夹已处理完成") if __name__ == "__main__": # 首次运行先执行一次 create_daily_dir() while True: # 休眠24小时后再次执行 time.sleep(24 * 60 * 60) create_daily_dir()
方案2:结合系统定时任务(推荐,资源占用更低)
不需要脚本常驻后台,用系统自带的定时任务工具触发单次运行脚本即可:
- Windows系统:将单次运行脚本保存为
.py文件,打开「任务计划程序」,创建每天指定时间运行该脚本的任务即可 - macOS/Linux系统:编辑crontab规则,添加定时任务即可,示例规则(每天凌晨1点运行):
0 1 * * * /usr/bin/python3 /你的脚本保存路径/create_dir.py
可选扩展功能
- 如果需要在日期文件夹下自动生成固定子文件夹(比如
素材、输出、草稿),在target_dir.mkdir之后添加对应创建逻辑即可 - 可以添加日志记录,把每次创建操作、异常信息写入日志文件,方便后续排查
内容的提问来源于stack exchange,提问作者Deepan Das
相关产品推荐
相关产品推荐

