日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下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. 068 Oozie任务调度框架

    一:概述 1.大数据协作框架 2.Hadoop的任务调度 这个是常见的任务调度框架. 3.azkaban 4..Oozie的三大功能 Oozie Workflow jobs :工作流任务,可以生成DA ...

  2. Python6 - 函数总结

    一.函数的基本知识 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 1.1函数定义规则 ...

  3. 深入理解类成员函数的调用规则(理解成员函数的内存为什么不会反映在sizeof运算符上、类的静态绑定与动态绑定、虚函数表)

    本文转载自:http://blog.51cto.com/9291927/2148695 总结: 一.成员函数的内存为什么不会反映在sizeof运算符上?             成员函数可以被看作是类 ...

  4. 在phpstorm中svn的使用

    目 录 1.搭建svn环境 1.1搭建svn服务端  1.2创建svn用户和密码 2.开始在phpstorm中链接svn 2.1打开Subversion 2.2 输入svn地址 2.3选择导出文件,进 ...

  5. web漏洞扫描工具AWVS使用

    AWVS AWVS简介:Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞,如交叉站点脚 ...

  6. Ubuntu urllib2.URLError:<urlopen error unknown url type:https>

    描述: python中urllib2 下载网页时,出现错误urllib2.URLError:<urlopen error unknown url type:https> 解决方法: pyt ...

  7. 理解 static (深入了解JAVA虚拟机)

    谈谈我对static的理解 因为我发现很多同学学到这里都会很困惑 很难理解static到底是个什么 首先 static是个修饰符 被static修饰的变量我们统称为静态变量也叫类变量(为什么叫类变量呢 ...

  8. 从字符集发展史看Unicode和UTF-8的区别

    从字符集发展史看Unicode和UTF-8的区别 版权声明 本文并非本人原创,其内容来源于网络,本文根据其演绎而来,具体出出已经无法考证,在这里只好给出我所参考的连接. 知乎 https://www. ...

  9. stm32与HC-SR04超声波传感器测距

    首先,先来看一下这个模块的基本功能和原理. HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm:模块包括超声波发射器.接收器与控制电路.像智能小车的测距 ...

  10. swoole深入学习 1. swoole初始

    0. 前言 swoole在PHP圈火了这么久,从2年前我用node写socket聊天服务器的时候就火了,那时候,经常有类似的文章php+swoole完爆nodejs之类的文章来吸引眼球,先不说它的好与 ...