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

作者:小friend 时间:2022-08-24 13:19:07 

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

 使用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批量修改文件名的方,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:http://www.hellomao.top/2019/08/14/daily_shipinhebing/

标签:python,批量,修改,文件名
0
投稿

猜你喜欢

  • 基于javascript实现全国省市二级联动下拉选择菜单

    2023-09-14 06:08:52
  • 解决使用python print打印函数返回值多一个None的问题

    2021-08-22 07:52:09
  • 详解Python中字符串前“b”,“r”,“u”,“f”的作用

    2022-08-08 15:33:42
  • 解决MySQL不允许从远程访问的方法

    2010-03-18 15:39:00
  • python中的字符串切割 maxsplit

    2022-04-16 14:35:35
  • ASP获取ACCESS数据库的表名以及表名对应的字段名和字段类型

    2009-12-25 18:57:00
  • 10个调试和排错的小建议

    2022-01-19 18:51:57
  • Python技能树共建之python urllib 模块

    2023-02-07 04:02:40
  • Python使用pylab库实现画线功能的方法详解

    2021-02-03 18:26:07
  • onmouseover事件和onmouseout事件全面理解

    2024-04-17 09:42:37
  • python实现快速排序的示例(二分法思想)

    2023-05-05 10:33:10
  • 详解爬虫被封的问题

    2021-01-29 15:21:16
  • MySQL慢查询日志超详细总结

    2024-01-17 00:17:21
  • Pycharm新手教程(只需要看这篇就够了)

    2023-12-14 14:04:26
  • Python爬虫教程知识点总结

    2023-10-01 15:27:16
  • 安装MySQL 5后无法启动(不能Start service)解决方法小结

    2024-01-23 07:29:29
  • Python多进程编程常用方法解析

    2022-06-06 17:23:34
  • centos 安装mysql中遇到问题的解决办法

    2010-12-14 15:11:00
  • python中pandas对多列进行分组统计的实现

    2022-06-25 03:50:03
  • 使用javascript提交form表单方法汇总

    2023-08-23 09:03:48
  • asp之家 网络编程 m.aspxhome.com