如何使用Python批量重命名照片?

我知道小伙伴们有遇到过批量重命名照片时,不知道如何去操作,今天我来给大家分享一下如何用python去批量重命名照片,我这里把我爬下来的王者荣耀照片把他们改成顺序的数字去命名,代码如下,思路也在代码里面:

import os,time       
#首先我们需要导入oshetime这两个模块,这里time模块其实可以不用导入的
#跟我们功能的实现没有什么太大的关系,只是为了统计处理了多长时间
#os模块提供通用的、基本的和操作系统交互功能
#time模块是python处理时间的模块
#str.split(string)分割字符串  .join(list)组成字符串
#我们先直接定义一个处理照片的函数,然后在函数里面去实现它的功能
def change_name(path):     
    global i       #这里我们先声明一个全局变量i
#然后我们先用if语句判断传输进来的路径是不是文件夹或者文件
#如果不是就直接返回False
    if not os.path.isdir(path) and not os.path.isfile(path):
        return False
#再用if语句判断是不是文件,如果是文件,那么我们的操作就可以开始了
    if os.path.isfile(path):
        #这里我们用os.path.split()分割出目录和文件
        #索引为1的是文件,索引为0的是目录
        file_path = os.path.split(path)   
        #这里再用split()函数分割出文件名和后缀名
        lists = file_path[1].split('.')   
        #然后使用列表切片操作截取出后缀名
        file_ext = lists[-1]
        #这里定义一个图片后缀名的列表,后面判断使用
        #这里其实不用定义这么多,其实有jpg,jpeg,png就够了
        img_ext = ['bmp','jpeg','gif','psd','png','jpg']
        #用if语句判断截取出来的后缀名是否在我们定义的列表中
        if file_ext in img_ext:
        #如果在的话就该进行改名操作了
        #这里用到我们的os.rename方法修改文件的名字
            os.rename(path,file_path[0] + '/' + str(i) + '.' + file_ext)
        #改名完成让全局变量加1
            i += 1
    #如果这个是文件夹
    elif os.path.isdir(path):
    #那么就用os.listdir获取文件夹包含的文件或文件夹的名字的列表
    # 然后遍历
        for x in os.listdir(path):
    #最后用os.path.join拼接路径,然后递归使用函数就好了
            change_name(os.path.join(path,x))     
#函数已经写好了,现在就是来使用了
#我们先定义自己图片所在的路径
img_dir = 'G:\Python\pig'
#在函数执行前,获取一个时间戳
start = time.time() 
#给全局变量i赋值    
i = 0
#执行函数
change_name(img_dir)
#函数执行结束后获取一个时间戳,然后减去之前的时间戳
#就是我们处理照片的时间了
c = time.time() - start
print("程序运行耗时:",c)
print("共处理",i,"张照片")

这就是我们执行的结果了,处理了80几张照片,一分钟都没有用到:

在这里插入图片描述

下图是部分图片原来的名字:

在这里插入图片描述
这是修改后的名字

在这里插入图片描述
你学会了吗,学会了就赶快去试试吧!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43635067/article/details/129239004
今日推荐