Python 批量重命名文件
原文出处:http://www.cnblogs.com/pzxbc/archive/2012/03/17/2404060.html
1 #!\usr\bin\env python 2 # -*- coding: utf-8 -*- 3 # Author: PZX 4 # FileName: batchrename.py 5 # Function: 批量命名某一文件夹下的文件名 6 7 import sys 8 import os 9 10 def UsePrompt(): 11 #如果省略path,则path为当前路径 12 print 'Useage: batchrename.py [path] newfilenames' 13 sys.exit() 14 15 def BatchRename(path, pattern): 16 #设置路径 17 os.chdir(path) 18 fileList = os.listdir(path) 19 20 dotIndex = pattern.rfind('.') 21 fileName = pattern[ : dotIndex] 22 fileExt = pattern[dotIndex : ] 23 genNum = 0 24 for fileItem in fileList: 25 fileFullName = fileName + ' (' + str(genNum) + ')' + fileExt 26 os.rename(fileItem, fileFullName) 27 print (fileItem + ' => ' + fileFullName) 28 genNum += 1 29 30 def main(): 31 if len(sys.argv) == 3: 32 path = sys.argv[1] 33 pattern = sys.argv[2] 34 elif len(sys.argv) == 2: 35 path = os.getcwd() 36 pattern = sys.argv[1] 37 else: 38 UsePrompt() 39 confirm = raw_input('Confirm(y|n): ') 40 if confirm == 'n': 41 sys.exit() 42 BatchRename(path, pattern) 43 44 if __name__ == '__main__': 45 main()
新增:
添加撤销上次批量重命名功能。使用方法:batchrename.py /r
1 #!\usr\bin\env python 2 # -*- coding: utf-8 -*- 3 # Author: PZX 4 # FileName: batchrename.py 5 # Function: 批量命名某一文件夹下的文件名 6 7 import sys 8 import os 9 import os.path 10 import pickle 11 12 def UsePrompt(): 13 #如果省略path,则path为当前路径 14 print 'Useage: batchrename.py [path] [newfilenames | /r]' 15 print '\tuse /r to cancel the renaming operation' 16 sys.exit() 17 18 def BatchRename(path, pattern): 19 #设置路径 20 os.chdir(path) 21 fileList = os.listdir(path) 22 23 dotIndex = pattern.rfind('.') 24 fileName = pattern[ : dotIndex] 25 fileExt = pattern[dotIndex : ] 26 genNum = 0 27 fileNameDict = {} 28 for fileItem in fileList: 29 fileFullName = fileName + ' (' + str(genNum) + ')' + fileExt 30 os.rename(fileItem, fileFullName) 31 genNum += 1 32 print (str(genNum) + ': ' + fileItem + ' => ' + fileFullName) 33 fileNameDict[fileItem] = fileFullName 34 35 #保存重命名的记录 36 recordDir = os.path.dirname(__file__) 37 recordPath = os.path.join(recordDir, 'batchrenamerecord') 38 recordFile = file(recordPath, 'wb') 39 pickle.dump(path, recordFile, pickle.HIGHEST_PROTOCOL) 40 pickle.dump(fileNameDict, recordFile, pickle.HIGHEST_PROTOCOL) 41 recordFile.close() 42 43 def CancelBatchRename(): 44 #读取上一次重命名的记录文件 45 recordDir = os.path.dirname(__file__) 46 recordPath = os.path.join(recordDir, 'batchrenamerecord') 47 recordFile = file(recordPath, 'rb') 48 path = pickle.load(recordFile) 49 fileNameDict = pickle.load(recordFile) 50 recordFile.close() 51 52 os.chdir(path) 53 54 #撤销上一次重命名 55 genNum = 0 56 newFileNameDict = {} 57 for orgName, newName in fileNameDict.items(): 58 os.rename(newName, orgName) 59 genNum += 1 60 print (str(genNum) + ': ' + newName + ' => ' + orgName) 61 newFileNameDict[newName] = orgName 62 63 recordDir = os.path.dirname(__file__) 64 recordPath = os.path.join(recordDir, 'batchrenamerecord') 65 recordFile = file(recordPath, 'wb') 66 pickle.dump(path, recordFile, pickle.HIGHEST_PROTOCOL) 67 pickle.dump(newFileNameDict, recordFile, pickle.HIGHEST_PROTOCOL) 68 recordFile.close() 69 70 71 def main(): 72 cancelling = False 73 if len(sys.argv) == 3: 74 path = sys.argv[1] 75 pattern = sys.argv[2] 76 elif len(sys.argv) == 2: 77 if sys.argv[1] == '/r': 78 cancelling = True 79 else: 80 path = os.getcwd() 81 pattern = sys.argv[1] 82 else: 83 UsePrompt() 84 confirm = raw_input('Confirm(y|n): ') 85 if confirm == 'n': 86 sys.exit() 87 if cancelling: 88 CancelBatchRename() 89 else: 90 BatchRename(path, pattern) 91 92 if __name__ == '__main__': 93 main()
转载于:https://www.cnblogs.com/imjc/p/imjc.html
Python 批量重命名文件相关推荐
- python下载文件并改名_第46p,8行代码,用Python批量重命名文件
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第46篇文章,第二阶段的课程:Python基础知识:小案例之用Python批量重命名文件. 学习本课程,建议先看一遍:[计算机基础知 ...
- Python批量重命名文件
Python批量重命名文件 修改出处 有积分的小伙伴支持一下下载链接 对图片文件名重命名时看到了很有用的代码,针对本人重命名需要,做出如下修改: n=count + int(startNumber) ...
- 天天向上续 python代码_第46p,8行代码,用Python批量重命名文件
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第46篇文章,第二阶段的课程:Python基础知识:小案例之用Python批量重命名文件. 学习本课程,建议先看一遍:[计算机基础知 ...
- python中关于命名的例子_利用Python批量重命名文件(给非技术人员的Python实例参考)...
Python是一门"优雅"的计算机语言,而且就算10岁的小朋友也能学会,我一直向我身边的同学朋友同事推荐,不管他会不会编程. 这一回我需要完成的任务是把"照片" ...
- python批量重命名文件下所有文件
批量命名整个文件夹下的图片 import os def rename():i = 0path = r"D:\Desktop\shrdataset\traffic"filelist ...
- python 批量重命名文件_Python批量重命名文件的方法
用到了os的两个接口: 1.列出文件夹中的所有文件(也包含目录)os.listdir(path) Return a list containing the names of the entries i ...
- 用Python批量重命名文件
案例 今天,我们来整理文件夹中的文件,给某个文件夹下的所有文件重新命名.要求是给所有文件按照修改时间,按顺序在文件名前面加上编号.比如将文件资料.xlsx重命名为1. 资料.xlsx import o ...
- Python批量重命名考研资料
Python批量重命名文件 零.问题引入 最近网上找了一些高等数学基础课程,当然免费的肯定少不了广告,我下载的就是下面这个样子 简直不能忍受,所以现在开始来重命名这些文件,可是现在下载了60多集,一个 ...
- python批量重命名指定目录下所有文件的后缀名
python批量重命名指定目录下所有文件的后缀名 有个需求,需要把某个文件夹下所有后缀名为.abc的更改为.xyz; #批量重命名指定目录下面所有文件的后缀名. word_dir为需要更改后缀的文件夹 ...
最新文章
- 从TXT文本文档向Sql Server中批量导入数据
- EXC_BAO_ACCESS引起的奔溃信息
- 为什么要把进程/线程绑定到特定cpu核上运行?(cpu core id coreIdx)opdevsdk_sys_bindThreadCoreId()
- 喝清凉茶,吃绿豆汤看绿色奥运[我写绿色IT]
- Outlook通过RPC/RPC Over HTTPS访问Exchange邮箱
- [BZOJ3173][Tjoi2013]最长上升子序列
- python模拟上传多张图片
- vue的style绑定background-image url 写法
- 如何使用Python玩转PDF各种骚操作?你看了就知道。
- 几张清晰的图讲清楚什么是Java堆碎片?(内存碎片化)
- 大学计算机基础vfp程序设计课程试验报告簿,VF程序设计实验报告册(实践教程).doc...
- 【办公自动化Excel】开发工具的使用
- MySQL8.0 - 新特性 - Descending Index 1
- freesurfer对结构核磁共振成像分割输出结果介绍
- DestroyWindow无法销毁的问题
- 电脑录屏是哪个快捷键?3个录屏快捷键,教你快速录屏
- 你听说过FOC吗?FOC的原理是什么?
- python 3.8教程_Python 3.8 新功能全解
- java毕业设计阿博图书馆管理系统mybatis+源码+调试部署+系统+数据库+lw
- 【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(中国区域高精度同化气象站CMADS)
热门文章
- java 父类私有成员_java父类私有成员
- PowerDesigner显示Comment注释栏
- el-input输入值无法在输入框显示
- DB2 exception: Cannot create PoolableConnectionFactory SQLCODE=-142
- 《数字摄影与摄像》学习笔记——摄影课理论基础
- C++STL优先队列小根堆大根堆自定义的应用
- 牛客竞赛,GDDU第十届文远知行杯新生程序设计竞赛,摸鱼记(BDEIKL题解,补G,ACFHJ)
- 计算机信息学中比较大小的代码,信息学奥赛计算机基础知识.doc
- linux的manual手册不存在,Linux笔记
- JavaScript文档对象模型document对象改变Html表单属性(4)