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

 更新时间:2020年03月24日 08:58:41   作者:小friend  
这篇文章主要介绍了视频合并时使用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正则表达式完成车牌号检验的相关资料,在Python中正则表达式是一种用于匹配和操作字符串的强大工具,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • Python中的十大图像处理工具(小结)

    Python中的十大图像处理工具(小结)

    这篇文章主要介绍了Python中的十大图像处理工具,本文主要介绍了一些简单易懂最常用的Python图像处理库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • python文件处理笔记之文本文件

    python文件处理笔记之文本文件

    相信大家在测试任务过程中都或多或少遇到自己处理文本文件的情况,这篇文章主要给大家介绍了关于python文件处理笔记之文本文件的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • 用python实现的线程池实例代码

    用python实现的线程池实例代码

    这篇文章主要介绍了用python实现的线程池实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python gravis库实现图形数据可视化实例探索

    python gravis库实现图形数据可视化实例探索

    这篇文章主要为大家介绍了python gravis库实现图形数据可视化实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • python读取并写入mat文件的方法

    python读取并写入mat文件的方法

    这篇文章主要介绍了python读取并写入mat文件的方法,文中给大家提到了python读取matlab写的mat文件问题以及解决办法 ,需要的朋友可以参考下
    2019-07-07
  • python入门语句基础之if语句、while语句

    python入门语句基础之if语句、while语句

    本文介绍了python入门语句基础之if语句、while语句,if 语句让你能够检查程序的当前状态,并据此采取相应的措施,而for 循环用于针对集合中的每个元素都一个代码块,而 while 循环不断地运行,直到指定的条件不满足为止,本文通过示例代码详解介绍,需要的朋友参考下吧
    2022-04-04
  • Python学习小技巧之利用字典的默认行为

    Python学习小技巧之利用字典的默认行为

    这篇文章主要给大家介绍了Python学习小技巧之利用字典的默认行为的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Python TensorFlow介绍与实战

    Python TensorFlow介绍与实战

    这篇文章介绍了Python TensorFlow介绍与实战,通过本文的介绍,我们不仅了解了TensorFlow的基本概念和安装方法,还通过线性回归和卷积神经网络的实例,深入探讨了 TensorFlow 的使用技巧,TensorFlow 的强大功能和灵活性使其成为深度学习领域的重要工具,需要的朋友可以参考下
    2024-07-07
  • Python如何获取模块中类以及类的属性方法信息

    Python如何获取模块中类以及类的属性方法信息

    python对属性权限的控制是通过属性名来实现的,下面这篇文章主要给大家介绍了关于Python如何获取模块中类以及类的属性方法信息的相关资料,需要的朋友可以参考下
    2021-12-12

最新评论