日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下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工具 - 批量文件重命名的更多相关文章

  1. python实现批量文件重命名

    本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到 ...

  2. Java用来进行批量文件重命名,批量提取特定类型文件

    原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一 ...

  3. python学习笔记--文件重命名,删除及文件夹

    文件重命名 import os os.rename('123.txt','456.txt') 删除文件 >>> import os >>> os.remove('4 ...

  4. 用Python写的批量文件重命名

      有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重 ...

  5. Python批量文件重命名

    今天,得到一个里面都是图片的文件夹,但是图片都没有后缀,因此想用Pythton批量地为所有的文件加上".jpg"的后缀,代码如下: #-*- coding:utf-8 -*- #重 ...

  6. 批量文件重命名工具-极力推荐 advanced renamer

    http://www.advancedrenamer.com/  功能太强大了,自己慢慢探索吧.

  7. Python实例31[批量对目录下文件重命名]

    经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Uni ...

  8. asp.net 文件批量移动重命名

    最近闲时写了个批量移动重命名文件的工具 点击下载工具

  9. Python脚本轻松实现批量图片重命名

    ************************************************************************** 摘要:网上爬取的图片名字很混乱,格式也比较多,需要 ...

随机推荐

  1. 077 Apache的HBase与cdh的hue集成(不建议不同版本之间的集成)

    1.修改hue的配置文件hue.ini [hbase] # Use full hostname with security. hbase_clusters=(Cluster|linux-hadoop3 ...

  2. moodleform -转载于blfshiye

    Form API 表单API 文件夹 1.概述 2.亮点 3.使用方法 4.表单元素 4.1 基本表单元素 4.2 定制表单元素 5.经常使用函数 5.1  add_action_buttons($c ...

  3. Linux系统之常用文件搜索命令

    (一)常用文件搜索命令 (1)which命令 (2)find命令 (3)locate (4)updatedb (5)grep (6)man (7)whatis (一)常用文件搜索命令 (1)which ...

  4. 项目Alpha冲刺——随笔集合

    课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队) 团队名称:葫芦娃队 作业目标:汇总这次冲刺项目的所有随笔文件. 队员学号 队员昵称 博客地址 041602421 de ...

  5. POJ.1160.Post Office(DP 四边形不等式)

    题目链接 \(Description\) 一条直线上有n个村庄,位置各不相同.选择p个村庄建邮局,求每个村庄到最近邮局的距离之和的最小值. \(Solution\) 先考虑在\([l,r]\)建一个邮 ...

  6. Python中的正则表达式探秘1

    正则表达式中的特殊字符: $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'.要匹配 $ 字符本身,请使用 \$. ( ) ...

  7. 潭州课堂25班:Ph201805201 WEB 之 CSS 第三课 (课堂笔记)

    在 CSS 中第个标签都可以认为是个盒子,盒子就有以下几层 边框 border border-top: 5px solid black; /*上边框 实线*/ border-right: 3px do ...

  8. 潭州课堂25班:Ph201805201 第十六课 正则 (课堂笔记)

    import re 元字符: . ^ $ * + ? {} \ () # s = 'abcdefg' # s.find('c') # print(s.find('cd')) ## 查找 # b = s ...

  9. 解决AD9中“......has no driver”的问题

  10. PHP抓取网页内容经验总结

    用php 抓取页面的内容在实际的开发当中是非常有用的,如作一个简单的内容采集器,提取网页中的部分内容等等,抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就 ...