侧边栏壁纸
博主头像
YOUZI

我依旧在追寻自由的路上

  • 累计撰写 85 篇文章
  • 累计创建 10 个分类
  • 累计创建 27 个标签

目 录CONTENT

文章目录

图片批量命名-时间升序

柚子
原创 / 2024-07-16 / 0 评论 / 0 点赞 / 4 阅读 / 0 字
温馨提示:
本文最后更新于65天前,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响您的利益,请联系 站长 删除。

代码

无前缀

import os
import shutil


def rename_file(target_directory, output_directory):
    # 获取目录下所有文件
    files = os.listdir(target_directory)

    # 过滤出所有图片文件
    image_files = [file for file in files if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp', 'webp'))]

    # 按文件修改时间排序
    image_files.sort(key=lambda x: os.path.getmtime(os.path.join(target_directory, x)))

    # 确保输出目录存在
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)

    # 按照时间顺序重命名图片文件并复制到输出目录
    renamed_files = []
    for i, file in enumerate(image_files, 1):
        # 构造新文件名
        _, ext = os.path.splitext(file)
        new_name = f"{i:03d}{ext}"
        new_path = os.path.join(output_directory, new_name)

        # 检查新文件名是否已经存在
        if os.path.exists(new_path):
            print(f'命名文件已存在,跳过: {new_name}')
            renamed_files.append(new_name)
            continue

        # 复制并重命名文件
        shutil.copy2(os.path.join(target_directory, file), new_path)
        print(f'已重命名并复制: {file} -> {new_name}')
        renamed_files.append(new_name)

    print("图片文件已按照时间顺序重命名并复制到输出目录。")


# 指定要重命名的目录和输出目录
directory_path = r'D:\Pictures\pixiv'
output_path= r'D:\Pictures\pixiv\output'

# 调用函数进行重命名和复制
rename_file(directory_path, output_path)

有前缀

import os
import shutil


def rename_file(target_directory, output_directory, file_prefix):
    # 遍历文件夹中的文件
    files = os.listdir(target_directory)
    files = [f for f in files if f.endswith(('.jpg', '.png', '.webp'))]  # 过滤图片文件

    # 按时间顺序排序文件
    files.sort(key=lambda x: os.path.getmtime(os.path.join(target_directory, x)))

    # 确保输出目录存在
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)

    # 重命名文件
    for i, file in enumerate(files, start=1):
        old_path = os.path.join(target_directory, file)
        new_filename = f'{file_prefix}{str(i).zfill(3)}{os.path.splitext(file)[1]}'
        new_path = os.path.join(output_directory, new_filename)

        if os.path.exists(new_path):
            print(f'跳过重命名: {file}')
        else:
            shutil.copy2(old_path, new_path)
            print(f'已重命名并复制: {file} -> {new_filename}')
        print(f'跳过非图片文件: {file}')


# 指定要重命名的目录和输出目录
directory_path = r'D:\Pictures\pixiv'
output_path = r'D:\Pictures\pixiv\output'
prefix = 'pixiv-'

# 调用函数进行重命名和复制
rename_file(directory_path, output_path, prefix)

0

评论区