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格式化字符串:非常好用,{}里面插入变量的值,最后在终端上显示出来