按当前顺序批量重命名图片(python)

本文介绍了一个如何使用Python和Pillow库在Windows环境下,根据图片的原始下载顺序对图片进行重命名,保持原有顺序,特别适用于漫画等需要特定顺序的情况。
部署运行你感兴趣的模型镜像

我有这个需求是因为下载图片,或者整理图片时用到,比如说漫画

windows操作

windows可以直接全选所有文件,然后重命名,就会批量命名,但是打乱了原有展示顺序

python

我想要实现的是保证按照下载时的顺序(也就是数字原有排序),我的需求是从1开始,而且按照图片原有的顺序(漫画需求)

下面代码实现的是将目标文件夹里所有的图片按照当前顺序重命名为1开始

pip install Pillow
from PIL import Image
import os

# 设置你的文件夹路径
folder_path = r'C:\Users\HML\Desktop\astatic\avatar'

# 列出文件夹中的所有文件
files = os.listdir(folder_path)

# 筛选出所有图片文件(这里假设常见的图片扩展名)
image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.tif')
image_files = [f for f in files if f.lower().endswith(image_extensions)]

# 按照名称排序图片文件
sorted_image_files = sorted(image_files)

# 重命名并转换图片文件
for index, file in enumerate(sorted_image_files, start=1):
    # 构建新的文件名,保持原有扩展名
    original_extension = os.path.splitext(file)[1].lower()
    new_file_name = f'{index}{original_extension}'
    # 完整的旧文件路径
    old_file_path = os.path.join(folder_path, file)
    # 完整的新文件路径
    new_file_path = os.path.join(folder_path, new_file_name)

    # 打开图片文件
    with Image.open(old_file_path) as img:
        # 如果图片不是PNG,将其转换为RGB模式并保存为JPEG
        if original_extension != '.png':
            img = img.convert('RGB')
            img.save(new_file_path, 'JPEG')
        else:
            # 如果是PNG,直接复制到新文件名
            img.save(new_file_path)



print("所有图片已重命名,非PNG图片已转换为.jpg格式,原始文件已删除。")

执行代码后为,可以发现保留了原有的顺序,这对于漫画很重要

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用Python编写脚本按顺序批量重命名图片文件 为了实现按照顺序批量重命名图片文件的功能,可以利用`os`库来进行文件操作。此库提供了与操作系统交互的方法,包括获取指定路径下所有文件的名字、修改文件名称等功能[^4]。 下面是一个具体的例子,展示怎样创建一个Python脚本来执行这一任务: ```python import os def batch_rename_images(directory, prefix): images = [f for f in os.listdir(directory) if f.endswith(('.png', '.jpg', '.jpeg'))] images.sort() # 对列表进行排序以确保有序性 count = 0 for image_name in images: old_file_path = os.path.join(directory, image_name) new_image_name = f"{prefix}_{str(count).zfill(4)}.jpg" new_file_path = os.path.join(directory, new_image_name) os.rename(old_file_path, new_file_path) count += 1 if __name__ == '__main__': directory = 'path/to/your/image/folder' prefix = "image" batch_rename_images(directory, prefix) ``` 这段代码定义了一个名为`batch_rename_images()`的函数,它接收两个参数:一个是目标文件夹的位置(`directory`);另一个是用来给新文件名做前缀的文字串(`prefix`)。程序首先过滤并收集该位置下的所有支持类型的图像文件到列表中,并对其进行自然排序以便于后续处理。接着遍历这些文件,在保持原有扩展名不变的情况下依次赋予新的编号形式的名字,最后调用`os.rename()`完成实际更名动作[^1]。 对于需要处理多级子文件夹的情况,则可以在上述基础上增加一层循环逻辑用于迭代访问各个层次内的内容[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值