您可以使用os.listdir 获取目录中的文件列表,然后通过os.path.isfile 和/或f.endswith 过滤它们以仅接受图像文件。您几乎拥有时间戳代码(您可以使用strftime 对其进行格式化),因此只需使用os.makedirs 创建任何必要的目录并使用os.replace 复制文件。
所有相关方法都可以在os 和datetime 模块的文档中找到。
import os
from datetime import datetime
path = "."
ext = "CR2"
for f in os.listdir(path):
fpath = os.path.join(path, f)
if os.path.isfile(fpath) and fpath.endswith(ext):
time = datetime.fromtimestamp(os.path.getctime(fpath)).strftime("%d-%m-%Y")
os.makedirs(os.path.join(path, time), exist_ok=True)
os.replace(fpath, os.path.join(path, time, f))
如果你想接受多个扩展名并按扩展名将它们组织到子文件夹中,你可以使用:
import os
from datetime import datetime
path = "foo"
exts = set(["cr2", "jpg"])
for f in os.listdir(path):
fpath = os.path.join(path, f)
ext = f.split(".")[-1].lower()
if os.path.isfile(fpath) and ext in exts:
time = datetime.fromtimestamp(os.path.getctime(fpath)).strftime("%d-%m-%Y")
os.makedirs(os.path.join(path, time, ext), exist_ok=True)
os.replace(fpath, os.path.join(path, time, ext, f))