使用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安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
python正则分析nginx的访问日志
Jan 17 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
python 获取url中的参数列表实例
Dec 18 Python
python构建基础的爬虫教学
Dec 23 Python
Python Pexpect库的简单使用方法
Jan 29 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
使用jupyter notebook运行python和R的步骤
Aug 13 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
phpmyadmin的#1251问题
2006/11/25 PHP
浅析php数据类型转换
2014/01/09 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP7新功能总结
2019/04/14 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
js中的this的指向问题详解
2019/08/29 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
淘宝中秋节活动方案
2014/01/31 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
委托书范文
2014/04/02 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
五年级学生期末评语
2014/12/26 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
辞职离别感言
2015/08/04 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server