利用Python批量重命名文件夹下文件
#!/usr/bin/python # -*- coding: UTF-8 -*- # -*- coding:utf8 -*- import os from string import digits class BatchRename(): def __init__(self): #文件存放目录 self.spath = 'Sensetime/'
self.dpash='Sensetime-rename/'
self.endpash='Sensetime-end/' def rename(self): filelist = os.listdir(self.spath) rename_fileList=os.listdir(self.dpash) total_num = len(filelist) i = 0 num = 0 for item in filelist: 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 except Exception 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)) #处理名字重名 重名数量统计入字典 def CheckDuplicateDname(self): i=0 name_dict={} rename_fileList = os.listdir(self.dpash) for item in rename_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 in name_dict.keys(): print(item,item not in name_dict) os.rename(src, dst) name_dict[name] = 1 i+=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 + 1 name_dict[name]+=1 except Exception 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()
去除字符串中的数字:
name=item.translate(str.maketrans('', '', digits)).split(".")[0]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律