使用python批量修改文件名的方法(视频合并时)


Posted in Python onMarch 24, 2020

不知道大家有没有遇到这样的情况,比如视频合并时文件名没有按照正常顺序排列,像这样

 使用python批量修改文件名的方法(视频合并时) 

可见,文件名排序是乱的。这个样子合并出来的视频一定也是乱的。所以得想办法把文件名修改一下,让软件读取出正确的顺序。闲话少说,上代码。

"""
注意:一、文件名除去扩展名必须以 '_' + 数字 结尾。
 二、convert.py 放在文件目录。
 三、目录中不能有多余文件
主要算法:
根据最大数字的位数添加0
例如,如果最大数字为123,那么位数为3位,
 1就要变成001、2变成002、23变成023,依次...
"""

import os

li = []
new_li = [] # 新文件名
null_li = [] # 不标准的文件名
filenames = os.listdir('./')

# 得到数字的最大位数
for filename in filenames:
 tmp = os.path.splitext(filename)[0] # 得到文件名
 if('_' in tmp): # 找到数字前的标志
 num = tmp.split('_')[-1]
 li.append(num)
 else:
 null_li.append(filename)
max_len = len(max(li, key=len))
# ~ print(max_len)

# 新文件名
for filename in filenames:
 name = os.path.splitext(filename)[:-1] # 得到文件名
 name = '_'.join(name)
 ext = os.path.splitext(filename)[-1] # 得到扩展名
 if('_' in name): # 找到数字前的标志
 name1 = name.split('_')[:-1]
 name1 = '_'.join(name1) #文件名
 num = name.split('_')[-1]
 quantity = max_len - len(num)
 name2 = '0' * quantity + num #数字名
 filename = name1 + '_' + name2 + ext
 new_li.append(filename)
# ~ new_li.sort()
# ~ print(filenames)
# ~ print('\n')
# ~ print(new_li)

# 检查是否有不规范的文件名
if(len(filenames)-1 != len(new_li)):
 null_li.remove('convert.py')
 null_li = '、'.join(null_li)
 print("error: \""+ null_li + "\" 不以 '_' + 数字 结尾。")
 exit()

# 修改文件名
i = 0
for oldname in filenames:
 if (oldname != 'convert.py'):
 os.rename(oldname,new_li[i])
 print(oldname,'======>',new_li[i])
 i+=1

其中注意事项,在上述代码里也说明了。运行成功后,再次查看

使用python批量修改文件名的方法(视频合并时)

可见,视频已经按照顺序排列好了。

总结

以上所述是小编给大家介绍的视频合并时使用python批量修改文件名的方,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 判断一个进程是否存在
Apr 09 Python
python socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
跟老齐学Python之不要红头文件(1)
Sep 28 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
python 修改本地网络配置的方法
Aug 14 #Python
python django 原生sql 获取数据的例子
Aug 14 #Python
django 连接数据库 sqlite的例子
Aug 14 #Python
Python将主机名转换为IP地址的方法
Aug 14 #Python
Python利用WMI实现ping命令的例子
Aug 14 #Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 #Python
python for循环remove同一个list过程解析
Aug 14 #Python
You might like
用libtemplate实现静态网页生成
2006/10/09 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
PHP反射实际应用示例
2019/04/03 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JS画线(实例代码)
2013/11/20 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
vue高德地图之玩转周边
2017/06/16 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
详解爬虫被封的问题
2019/04/23 Python
python批量解压zip文件的方法
2019/08/20 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
python 如何引入协程和原理分析
2020/11/30 Python
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
Servlet方面面试题
2016/09/28 面试题
学生手册家长评语
2014/02/10 职场文书