使用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中迭代器(iterator)用法实例分析
Apr 29 Python
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Python数据可视化实现正态分布(高斯分布)
Aug 21 Python
利用python在大量数据文件下删除某一行的例子
Aug 21 Python
Python中断多重循环的思路总结
Oct 04 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
详解python中的lambda与sorted函数
Sep 04 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 分页类 扩展代码
2009/06/11 PHP
PHP 面向对象实现代码
2009/11/11 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
tensorflow 模型权重导出实例
2020/01/24 Python
python3 kubernetes api的使用示例
2021/01/12 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
校长竞聘演讲稿
2014/05/16 职场文书
工作会议方案
2014/05/21 职场文书
运动会口号8字
2014/06/07 职场文书
关爱残疾人标语
2014/06/25 职场文书
公司门卫工作职责
2014/06/28 职场文书
学习保证书100字
2015/02/26 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL