给图片批量按照顺序重命名

1.代码部分解释

首先,设置需要文件夹的路径,图片的拓展名可以根据实际需求进行修改

# 设置图片文件夹路径
image_folder = " "
extension = ".jpg"  # 图片扩展名

 2.获取文件夹里面所有的图片文件&并对图片进行排序

# 获取图片文件夹中的所有图片文件
image_files = [file for file in os.listdir(image_folder) if file.endswith(extension)]

# 排序图片文件列表
image_files.sort()

 列表推导语法(List Comprehension):从指定的文件夹中获取所有文件的列表

os.listdir(image_folder):调用os模块中的listdir,接受文件的路径作为参数,并返回该文件夹所有的文件与子文件夹的列表

file for file in os.listdir(image_folder):这是列表推导的一部分,它在从文件夹中获取的所有文件和子文件夹列表中遍历每个元素,并将它们称为file

这个列表推导来获取指定文件夹中所有图片文件的列表。通过在列表推导中添加条件,我们可以过滤出特定扩展名(例如 .jpg)的文件

image_files.sort()是按照默认的图片命名方式进行排序:

例如:3.jpg、2.jpg、1.jpg——>1.jpg、2.jpg、3.jpg

image3.jpg、image2.jpg、image1.jpg——>image1.jpg、image2.jpg、image3.jpg

3.遍历图片文件按照顺序进行重命名

# 遍历图片文件并按顺序进行重命名
for index, image_file in enumerate(image_files, start=1):
    old_path = os.path.join(image_folder, image_file)
    new_filename = f"{index}{extension}"
    new_path = os.path.join(image_folder, new_filename)
    os.rename(old_path, new_path)
    print(f"Renamed {image_file} to {new_filename}")

for的循环语句,用来遍历image_files列表中的元素;enumerate():接受的对象有两个,列表中的图片元素&设置从1开始的参数;综上,这个循环会遍历列表里面的图片元素,然后每个图片分配一个从1开始的索引值

os.path.join:用于将多个路径组合在一起,创建完整的路径;folder:存放图片的文件夹;iamge_file:文件夹的名字;综上,用于定位图片文件的原始路径,为接下来操作使用;old_path与new_path同理

f-string格式化字符串:将索引号喝文件扩展名连接起来创建新的文件名

os,rename():对文件进行重命名,把old中的文件重命名为new指定的路径和文件名

f-string格式化字符串:非常好用,{}里面插入变量的值,最后在终端上显示出来

 

### 使用 Python 对文件夹中的图片添加序号 为了对文件夹中的图片批量添加序号,可以利用 `os` 和 `shutil` 模块来完成这一任务。通过遍历指定路径下的所有图像文件,并按照一定的规则为其名称附加序号。 下面是一个简单的例子说明如何实现此功能: ```python import os def add_serial_number_to_images(folder_path, prefix="img_", start=1): """ 给定文件夹内的所有图片文件名前面加上序列号. 参数: folder_path (str): 图片所在的文件夹路径. prefix (str): 文件名前缀,默认为 'img_' . start (int): 序列起始数字,默认从 1 开始. 返回值: None """ # 获取该目录下所有的文件列表 files = sorted([f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]) count = start for file_name in files: old_file_path = os.path.join(folder_path, file_name) # 只处理常见类型的图片文件 ext = os.path.splitext(file_name)[1].lower() valid_extensions = ['.jpg', '.jpeg', '.png', '.gif'] if ext not in valid_extensions: continue new_filename = "{}{:0>3d}{}".format(prefix, count, ext) new_file_path = os.path.join(folder_path, new_filename) try: os.rename(old_file_path, new_file_path) print(f'Renamed {old_file_path} to {new_file_path}') count += 1 except Exception as e: print(e) if __name__ == '__main__': path = './images' # 替换为你自己的图片所在文件夹路径 add_serial_number_to_images(path) ``` 上述脚本会读取给定文件夹里的所有文件,并只针对常见的几种图片格式(如 JPG、PNG 等)进行重命名,在原有文件扩展名之前加入带有三位数宽度的连续整数作为新名字的一部分[^1]。 #### 注意事项: - 此处假设所有目标文件都位于同一级子目录之下;如果有嵌套结构,则需进一步调整代码逻辑。 - 如果存在同名文件的风险,请确保初始编号不会与其他现有文件冲突或者采取其他措施防止覆盖重要数据。 - 脚本中使用了零填充的方式使得每个序号至少有三个字符长度,这样即使数量较多也能保持美观整齐。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值