工作需要批量修改图片文件名,但是保留文件的前几位名字,写了个简单的python 脚本,内容如下:

#-*-coding:GBK -*-
# ---------------by  Terry.Gu  2021.6.30
import os

import time
from time import sleep
from tqdm import tqdm
start = time.process_time()
localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("=================================================================")
print("                现在时间 :", localtime)
print("=================================================================")
print(" 本脚本功能: 将当前目录下的所有文件重新命名")
print(" 请确保,文件名以17位车架号开头,如:")
print("          例:          LDP31B964MG876283_XXX.jpg")
print("          输出格式为:  LDP31B964MG876283_sss.jpg")
print("=================================================================")
input("按回车继续...")
print(" ")
print("=================================================================")
print("输入证件类型(如: 网约车证_1 或者 行驶证_2...)")
print("=================================================================")
print(" ")
nname= input("请输入:")
print(" ")
n=0
file_name = os.listdir('./')  #获取当前文件夹内的文件名,列表 file_name
pbar = tqdm(file_name)
for file in file_name:
    #print(file)
    (file,tempfilename) = os.path.split(file)     #分离文件后缀名
    (filename1, extension) = os.path.splitext(tempfilename) #filename1 为文件名字,extension为文件后缀名
    for i in pbar:
        pbar.set_description('进度:')
    if len(filename1) >= 17:  #判断文件名是否符合要求,车架号为17为,过滤小于17位的文件
        vname = filename1[0:17]
        newname = str(vname) + "_" + str(nname) + str(extension)  #设置新的文件名
        #print(newname)
        os.rename(file_name[n], newname)

    else:
        print(str(filename1) + str(extension) +  "文件名不符合要求")
    n+=1

print(" ")

print("重名名完成!")
print("=================================================================")
end = time.process_time()
print("耗时:" + str(end-start) + "s")
print("=================================================================")
input("按回车键盘退出!")

# ---------------by  Terry.Gu  2021.6.30