照片很多,想整理,如何根据拍摄时间去创建文件夹,然后自动放进对应文件夹

查看 57|回复 4
作者:hsm2913299   
比如拍摄日期2023-06-03的照片,然后创建文件夹文件名为2023-06-03,然后自动把相对应拍摄时间的图片放进去。

文件夹, 放进

www478347671   

[Python] 纯文本查看 复制代码import os
import shutil
import exifread
# 源路径和目标路径
src_path = "D:/Pictures/"
dst_path = "D:/Pictures/Sorted/"
# 获取指定路径下的所有图片文件
def get_image_files():
    image_files = []
    for root, dirs, files in os.walk(src_path):
        for filename in files:
            if filename.endswith(".jpg") or filename.endswith(".jpeg") or filename.endswith(".png"):
                image_files.append(os.path.join(root, filename))
    return image_files
# 获取指定文件的拍摄日期时间信息
def get_image_datetime(filename):
    with open(filename, "rb") as f:
        tags = exifread.process_file(f)
        if "EXIF DateTimeOriginal" in tags:
            dt_original = str(tags["EXIF DateTimeOriginal"])
            return dt_original.split()[0].replace(":", "-")
        else:
            return None
# 转移图片文件
def move_image_file(filename, dst_dir):
    if not os.path.exists(dst_dir):
        os.makedirs(dst_dir)
    shutil.move(filename, dst_dir)
# 主函数
def main():
    image_files = get_image_files()
    for filename in image_files:
        dt_str = get_image_datetime(filename)
        if dt_str:
            dst_dir = os.path.join(dst_path, dt_str)
            move_image_file(filename, dst_dir)
            print(f"Moved {filename} to {dst_dir}")
if __name__ == "__main__":
    main()
hsm2913299
OP
  


www478347671 发表于 2023-6-3 17:23
[mw_shl_code=python,true]import os
import shutil
import exifread

可以做成成品吗?分给您
一丝风   

https://www.52pojie.cn/forum.php ... 4%BC%FE%D5%FB%C0%ED
www478347671   

@echo off
setlocal enabledelayedexpansion
set src_path=D:\Pictures
set dst_path=D:\Pictures\Sorted
for /r "%src_path%" %%f in (*.jpg *.jpeg *.png) do (
    set "exif_date="
    for /f "skip=1 tokens=1-9" %%a in ('wmic datafile where name^="%%f" get lastmodified /format:list') do (
        if not defined exif_date set "exif_date=%%b-%%c-%%d"
    )
   
    if defined exif_date (
        set "dst_dir=%dst_path%\!exif_date!"
        if not exist "!dst_dir!" mkdir "!dst_dir!"
        move "%%f" "!dst_dir!"
        echo Moved "%%f" to "!dst_dir!"
    )
)
goto :eof
直接新建 aa.bat文件   复制进去   点击执行
您需要登录后才可以回帖 登录 | 立即注册

返回顶部