python工具 - 批量文件重命名
日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下python工具可以协助批量修改文件名。
场景:某文件夹下由多种不同后缀类型的文件组成,先将后缀均为.mdb的所有文件更改为python01.mdb,python02.mdb...
代码部分:
import os prefix = 'python' # prefix 为文件重命名后的起始字符
length = # length为去除prefix后文件名要达到的长度
base = # 文件名的起始数
format = 'mdb' # 需要重命名什么后缀的文件 # 函数PadLeft的作用是将文件名补充到指定长度
# str代表要补全的字符
# num代表要达到的长度
# padstr代表到达长度需要添加的字符 def PadLeft(str,num,padstr):
#计算传入字符当前的长度
stringlength = len(str)
# 用标准长度 - 当前长度得出n,n为待补全的位数
n = num - stringlength
# 如果n>=,代表需要补全一定的位数
if n >= :
# 使用padstr * n + str后可以得到指定的长度
str = padstr * n + str
return str # 为避免误操作,提示用户
print('the files in [%s] will be renamed!' % os.getcwd())
# 获取当前目录的所有文件并打印
allfiles = os.listdir(os.getcwd())
print([f for f in allfiles if os.path.isfile(f)])
# 确认用户是否按'y'继续,否则直接exit()退出。
input = input('please press \'y\' to continue:')
if input.lower() != 'y' :
exit() # 获取当前位置的所有文件名,保存在列表filenames中
filenames = os.listdir(os.curdir)
i = base - # for循环遍历filenames里面的文件名
for filename in filenames:
i = i+
# 判断当前路径是否为文件,并且不是rename.py
if filename != 'rename.py' and os.path.isfile(filename):
# 将i转换为字符串,i的初始值为1
name = str(i)
# 使用PadLeft函数将文件名后缀补充到指定长度
name = PadLeft(name,length,'')
# split分割后的内容以['a11_3', 'py']的形式保存给列表t,分割文件名同时检查是否是需要修改的类型
t = filename.split('.')
m = len(t)
# 如果未指定文件后缀,则更改当前目录下所有的文件
if format == '':
os.rename(filename,prefix+name+'.'+t[m-])
else:
# 否则如果文件后缀等于format,也就是'mdb'的时候,执行对该文件的重命名
# filename重命名由3部分组成,即prefix(python)+name(,...)+'.'+t[m-] (后缀mdb)
if t[m-] == format:
os.rename(filename,prefix+name+'.'+t[m-])
else:
i = i - # 保证i连续
else: i = i - # 保证i连续 # 获取重命名后的文件列表并打印
allfiles = os.listdir(os.getcwd())
print([f for f in allfiles if os.path.isfile(f)])
执行结果:
the files in [/Users/pentest/PycharmProjects/python_basic/python教程/文件与文件系统/批量重命名文件名] will be renamed!
['a.mdb', 'a11_3.py', 'a11_4.py', 'ab.mdb', 'ae.mdb', 'b.mdb', 'c.mdb', 'rename.py']
please press 'y' to continue:y
['a11_3.py', 'a11_4.py', 'python01.mdb', 'python02.mdb', 'python03.mdb', 'python04.mdb', 'python05.mdb', 'rename.py']
更改前:
['a.mdb', 'a11_3.py', 'a11_4.py', 'ab.mdb', 'ae.mdb', 'b.mdb', 'c.mdb', 'rename.py']
更改后:
['a11_3.py', 'a11_4.py', 'python01.mdb', 'python02.mdb', 'python03.mdb', 'python04.mdb', 'python05.mdb', 'rename.py']
python工具 - 批量文件重命名的更多相关文章
- python实现批量文件重命名
本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到 ...
- Java用来进行批量文件重命名,批量提取特定类型文件
原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一 ...
- python学习笔记--文件重命名,删除及文件夹
文件重命名 import os os.rename('123.txt','456.txt') 删除文件 >>> import os >>> os.remove('4 ...
- 用Python写的批量文件重命名
有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重 ...
- Python批量文件重命名
今天,得到一个里面都是图片的文件夹,但是图片都没有后缀,因此想用Pythton批量地为所有的文件加上".jpg"的后缀,代码如下: #-*- coding:utf-8 -*- #重 ...
- 批量文件重命名工具-极力推荐 advanced renamer
http://www.advancedrenamer.com/ 功能太强大了,自己慢慢探索吧.
- Python实例31[批量对目录下文件重命名]
经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Uni ...
- asp.net 文件批量移动重命名
最近闲时写了个批量移动重命名文件的工具 点击下载工具
- Python脚本轻松实现批量图片重命名
************************************************************************** 摘要:网上爬取的图片名字很混乱,格式也比较多,需要 ...
随机推荐
- Redis持久化(persistence)
Redis 持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器 ...
- 通过反射的方式注入自己的ShutdownHook并清除其他HOOK
String className = "java.lang.ApplicationShutdownHooks"; Class<?> clazz = Class.forN ...
- IdentityServer4-主题
一.Startup 二.定义Resources 三.定义Clients 四.登录 五.使用外部身份提供商登录 六.Windows身份验证 七.登出 八.注销外部身份提供商 九.联合注销 十.联合网关 ...
- 谷歌浏览器升级引起的BUG
问题描述:在谷歌浏览器中,电脑打开A系统,添加附件时无法弹框. 预期结果:添加附件,可以打开弹框. 问题分析:谷歌浏览器自动升级,自55.0.2883.75后发布的新版本均自动停用Flash插件. 解 ...
- 10.25 正睿停课训练 Day9
目录 2018.10.25 正睿停课训练 Day9 A 数独(思路 DP) B 红绿灯(最短路Dijkstra) C 轰炸(计算几何 圆并) 考试代码 B C 2018.10.25 正睿停课训练 Da ...
- Some Formulas.
目录 计数问题 在一个有\(n\)个点的完全图(complete graph)中有多少棵生成树 排列组合 1. 当 \(C_n^m\) 为奇数时,\((n\&m)==m\) 2. \[\sum ...
- Python3.x使用PyMysql连接MySQL数据库
Python3.x使用PyMysql连接MySQL数据库 由于Python3.x不向前兼容,导致Python2.x中的很多库在Python3.x中无法使用,例如Mysqldb,我前几天写了一篇博客Py ...
- 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...
- js控制json生成菜单——自制菜单(一)
此文档解决以下问题: 1.JSON文件的书写方式 2.jQuery.getJSON()的运用 3.jQuery.each()的运用 4.jQuery的DOM 操作方法之一:.append()的运用 5 ...
- db2 codepage
首先分两个层面,DB2 CODEPAGE和OS CODEPAGE(DB2SET DB2CODEPAGE相当于设定了当前实例的OS的CODEPAGE) Linux系统查看CODEPAGE的方法:在终端输 ...