使用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通过socket查询whois的方法
Jul 18 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
python中cPickle类使用方法详解
Aug 27 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python如何删除文件中重复的字段
Jul 16 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
python将音频进行变速的操作方法
Apr 08 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
简单了解Python多态与属性运行原理
Jun 15 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
php输出xml格式字符串(用的这个)
2012/07/12 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python实现二分查找算法
2020/09/18 Python
python如何修改文件时间属性
2021/02/05 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
汽车专业求职信
2014/06/05 职场文书
中职招生先进个人材料
2014/08/31 职场文书
好员工观后感
2015/06/17 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
创业计划书之家教中心
2019/09/25 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang