suibi
- linux开机自启动服务命令(运行自启动脚本命令)
- linux忘记密码进不去如何解决(centos忘记登录密码解决方案)
- css梯形圆角边框样式(css实现多边形图案)
- 超详细css样式代码大全(css常用代码整理版)
- mysql和oracle的语法区别有什么(oracle为什么比mysql快)
- python调试程序的方法(python调试运行语句)
- php和java哪个好用(2022年学php还是java好)
- mysql除法保留小数(mysql保留几位小数的4种方法)
- 3种js对象转数组的方法(js将对象转换成数组的简单方法)
- mysql如何创建数据库教程(建立数据库的步骤)
- linux修改文件名称命令(linux重命名文件名后缀)
- mysql函数有哪些及作用(常用的数据库函数总结)
- python中class类的定义及用法(深入解析py的class类)
- python文件重命名代码命令(python如何批量修改文件名)
- linux查看配置信息文件命令(linux如何查看主机配置)
- win10命令提示符怎么进入系统模式(管理员怎么运行命令提示符)
- php和python性能对比哪个更好(php网页编程可以做什么)
- cmd进入mysql命令行连接(windows进入数据库的方法)
- xshell连接linux服务器教程分享(xshell常用命令大全值得收藏)
- css三角形怎么写(实例演示css创建三角形实现代码)
- linux查看磁盘信息命令(如何查看磁盘使用情况)
- excel下拉框怎么编辑(如何编辑下拉框选项内容)
- excel基础操作知识总结(必备的excel知识点总结大全)
- excel快速选择区域的方法(超实用表格快速选中某个区域方法)
- excel常用快捷键命令大全表(239个最常用excel快捷键技巧)
- excel中常用的数据格式有哪些(基本数据类型你了解多少)
- excel打乱顺序排列方法(表格随机打乱顺序)
- 最简单的excel表格分列拆分快捷方式(表格拆分列和行方法)
- excel日期差值计算公式(跨天的时间差计算公式)
- 一分钟搞定excel下拉列表关联设置(表格下拉菜单自动关联操作方法)
- excel日期比较函数正确公式(如何用excel计算日期差)
- excel颠倒顺序怎么做(excel数据如何实现顺序反转)
- html定位的几种方式分别是什么(简述HTML的定位方式怎么用)
- jquery获取属性值方法详解(jquery获取元素的实现方法)
- jquery隐藏元素的方法(jquery实现元素显示和隐藏的方式)
- linux查看隐藏文件命令是什么(如何查看隐藏文件命令)
- css居中对齐的代码怎么设置(css网页居中对齐代码怎么写)
- Java中rpc框架有哪些功能介绍(常用rpc框架有哪些)
- 修改linux系统时间常见命令(centos修改系统时间脚本命令)
- ajax同步和异步的区别是什么(简述编程中同步和异步的区别)
python文件重命名代码命令(python如何批量修改文件名)
当前支持在单个文件夹下重命名,并提前备份原文件,过滤子文件夹,对于原名和新名相同的文件,不作修改
代码:
import osimport shutilimport datetimedef backup_files(src_path): filenames = os.listdir(src_path) for filename in filenames: old_name = os.path.join(src_path, filename) if os.path.isdir(old_name): continue shutil.copy(old_name, backup_path)def batch_rename(src_path,date): filenames = os.listdir(src_path) same_name = [] count = 0 for filename in filenames: old_name = os.path.join(src_path, filename) if os.path.isdir(old_name): continue count += 1 change_name = date + '_%04d' % count + '.' + filename.split('.')[1] new_name = os.path.join(src_path, change_name) if change_name in filenames: same_name.append(change_name) continue os.rename(old_name, new_name) print('\n一共' + str(count) + '个文件,' + '修改了' + str(int(count) - len(same_name)) + '个文件的名字') if len(same_name) > 0: print('其中有' + str(len(same_name)) + '个文件的原名与新名相同,不作修改')if __name__ == '__main__': date = datetime.datetime.now().strftime('%m%d') src_path = r'C:\Users\1\Desktop\2' backup_path = src_path + '/' + 'backup/' if not os.path.exists(backup_path): os.makedirs(backup_path) backup_files(src_path) batch_rename(src_path,date)
笔记:
1.需要用到Python库的os,shutil,datetime
2.定义backup_files()函数用于在重命名之前备份原文件
3.os.listdir()列出文件夹内所有文件,包括子文件夹,由于并不需要重命名子文件夹,因此用下面代码过滤掉子文件夹,os.path.isdir()判断是否为文件夹,如果是,则continue跳过,代码如下:
if os.path.isdir(old_name): continue
4.shutil.copy()将原文件复制到另一个路径下,传入两个参数,第一个是需要复制的文件(包含路径),第二个是目标文件夹路径
5.定义batch_rename()函数用于批量重命名
6.循环遍历文件,获取旧的文件名old_name,同样需要过滤文件夹
7.设定新文件名的格式change_name,可随意设置,这里以“当天日期+第n个文件+原后缀”为名,其中filename.split('.')[1]将原文件名以.为分隔符将名字和后缀分开,得到一个列表,取列表第1个元素,即后缀
8.为避免原名与新名重复而导致重命名后覆盖原文件,用if判断语句跳过同名文件,并将同名的文件名添加到same_name列表中,代码如下:
if change_name in filenames: same_name.append(change_name) continue
9.用os.rename()方法对文件重命名,传入两个参数,第一个原文件名(包含路径),第二个新文件名(包含路径)
10.用datetime获取当前日期和时间,datetime.datetime.now()获取当前时间,年月日+时分秒,strftime()用于格式化时间,可指定获取时间的格式,例如只输出年份,或者只输出月+日
#这里输出当天的月+日date = datetime.datetime.now().strftime('%m%d')
写笔记