python重命名文件夹下所有文件_利用Python批量重命名文件夹下文件

#!/usr/bin/python#-*- coding: UTF-8 -*-#-*- coding:utf8 -*-

importosfrom string importdigitsclassBatchRename():def __init__(self):#文件存放目录

self.spath = 'Sensetime/'self.dpash='Sensetime-rename/'self.endpash='Sensetime-end/'

defrename(self):

filelist=os.listdir(self.spath)

rename_fileList=os.listdir(self.dpash)

total_num=len(filelist)

i=0

num=0for item infilelist:if item.endswith('.jpg'):if len(item.split("-")) == 2:

src=os.path.join(os.path.abspath(self.spath), item)

dst= os.path.join(os.path.abspath(self.dpash), item.split("-")[0] + '.jpg')try:print(src)

os.rename(src, dst)print('converting %s to %s ...'% (item, item.split("-")[0] + '.jpg'))

i= i + 1

exceptException as e:if e.args[0] == 17:print("####",item)

dst= os.path.join(os.path.abspath(self.dpash), item.split("-")[0] + str(num) + '.jpg')

os.rename(src, dst)

num+=1

#continue

else:print(item)print(len(item.split("-")))print('total %d to rename & converted %d pngs'%(total_num, i))#处理名字重名 重名数量统计入字典

defCheckDuplicateDname(self):

i=0

name_dict={}

rename_fileList=os.listdir(self.dpash)for item inrename_fileList:

name=item.translate(str.maketrans('', '', digits)).split(".")[0]

src=os.path.join(os.path.abspath(self.dpash), item)

dst= os.path.join(os.path.abspath(self.endpash), name + '.jpg')if name not inname_dict.keys():print(item,item not inname_dict)

os.rename(src, dst)

name_dict[name]= 1i+=1

else:try:

dst= os.path.join(os.path.abspath(self.endpash), name + str(name_dict[name]) +'.jpg')

os.rename(src, dst)print('converting %s to %s ...' % (item, item.split("-")[0] + '.jpg'))

i= i + 1name_dict[name]+=1

exceptException as e:print(item)#contin

print(name_dict)print("total:",i)print(sum(name_dict.values()))if __name__ == '__main__':

demo=BatchRename()

demo.rename()

demo.CheckDuplicateDname()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值