视频合并时使用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批量修改文件名的方,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • python调用系统ffmpeg实现视频截图、http发送

    python 调用系统ffmpeg进行视频截图,并进行图片http发送ffmpeg ,视频.图片的各种处理. 最近在做视频.图片的版权等深度学习识别,用到了ffmpeg部分功能,功能如下:  调用ffmpeg 对不同目录视频进行截图,通过http发送到后台进行算法识别.  每5分钟扫描最近的视频,生成图片,发送完毕图片删除. 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- """'定时任务每五分钟发送上一个5分钟视频 目

  • Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab import imageio #视频的绝对路径 filename = '/path/to/your/video.mp4' #可以选择解码工具 vid = imageio.get_reader(filename, 'ffmpeg') for im in enumerate(vid): #image的类型是ma

  • 使用Python批量修改文件名的代码实例

    这两天在整理一些文章,但是文件夹中每个文章没有序号会看起来很乱,所以想着能不能用Python写一个小脚本. 于是乎,参考了多方资料,简单写了下面几行代码 import osdef tekan(): i=1 #为序号赋初值 for old_file in os.listdir('.'): #os.listfir('.')用于获取当前文件夹所有文件名,'.'表示当前文件夹,也可改为目标文件路径 if 'py' not in old_file: #由于脚本文件不需要修改文件名,所以这里做个判断 #ne

  • python练习程序批量修改文件名

    复制代码 代码如下: # encoding:utf-8 ### 文件名如:# 下吧.mp3##import os,re fs=os.listdir('xb')for f in fs: ######方法一:partition获取无用字符 #1.将文件名以'['符分为3部分 #ls=f.partition('[') #2.ls[0]为需要文件名,因此获取ls[1:] #dirtystring = ''.join(ls[1:]) #3.开始替换 #newname=f.replace(dirtystri

  • python实现批量修改文件名代码

    我曾以为,写脚本是很难的,直到我遇到了Python 前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随着本地资源量的增多,资源管理就成了一件比较头疼的事情;对于资源的管理,方法有很多,我比较喜欢为资源起一个好记的名字,但改文件名是一件无聊又耗时的事情,所以,一个批量重命名的脚本就变得非常重要. 1.批量添加前缀功能 批量重命名 批量重命名逻辑,分三步: (1)确定需要命名的文件们 (2)确定新的文件

  • python读取视频流提取视频帧的两种方法

    本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pip install skimage 这时候会报错Please install the `scikit-image` package (instead of `skimage`) 所以按照提示操作即可: pip install scikit-image 环境安装成功. 2.通过python安装ffmp

  • python批量修改文件名的实现代码

    #coding:utf-8 #批量修改文件名 import os import re import datetime re_st = r'(\d+)\+\s?\((\d+)\)' #用于匹配旧的文件名,需含分组 re_match_old_file_name = re.compile(re_st) #要修改的目录 WORKING_PATH = r'F:\Gallery' #---------------------------------------------------------------

  • Python实现批量修改文件名实例

    本文实例讲述了Python实现批量修改文件名的方法.分享给大家供大家参考.具体如下: 下载了评书<贺龙传奇>,文件名中却都含有xxx有声下载,用脚本将其去掉.脚本涉及os.rename重命名方法,str.partition方法使用, 及正则match,search方法区别 # encoding:utf-8 ## # 文件名如: # 贺龙传奇\d+[有声下吧www.ysx8.com].mp3 ## import os,re fs=os.listdir('单田芳_贺龙传奇') for f in f

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

    不知道大家有没有遇到这样的情况,比如视频合并时文件名没有按照正常顺序排列,像这样 可见,文件名排序是乱的.这个样子合并出来的视频一定也是乱的.所以得想办法把文件名修改一下,让软件读取出正确的顺序.闲话少说,上代码. """ 注意:一.文件名除去扩展名必须以 '_' + 数字 结尾.  二.convert.py 放在文件目录.  三.目录中不能有多余文件 主要算法: 根据最大数字的位数添加0 例如,如果最大数字为123,那么位数为3位,  1就要变成001.2变成002.23变

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

    不知道大家有没有遇到这样的情况,比如视频合并时文件名没有按照正常顺序排列,像这样 可见,文件名排序是乱的.这个样子合并出来的视频一定也是乱的.所以得想办法把文件名修改一下,让软件读取出正确的顺序.闲话少说,上代码. """ 注意:一.文件名除去扩展名必须以 '_' + 数字 结尾.  二.convert.py 放在文件目录.  三.目录中不能有多余文件 主要算法: 根据最大数字的位数添加0 例如,如果最大数字为123,那么位数为3位,  1就要变成001.2变成002.23变

  • python批量修改文件名的示例

    今天中午看了一集动漫<进击的巨人>,看完后发现这些视频的名称有点乱,于是编程来批量重命名. 重命名之前的各名称格式为--飞极速[www.feijisu.com][16][720P][CHS-JAP] AVC.mp4,可以看到这个中间是有集数的,因此可以使用正则表达式提取,导入re模块. 然后由于要修改文件名,需要用到os模块. os.listdir(path) 上面这行代码可以将路径path中所有的文件的名称放入一个列表中. os.path.abspath(name) 这行代码可以得到名为na

  • Python批量修改文件名的方式详解

    目录 批量修改文件名(保留后缀) 批量修改文件名(全改) 读取文件下的所有文件名 总结 批量修改文件名(保留后缀) 这种方法,保留了文件原本的后缀.这里主要演示的是对图片名的修改. # 批量修改文件名 # 批量修改图片文件名 import os import re import sys path = 'F:\Temp\ZZ' fileList = os.listdir(path) # 待修改文件夹 print("修改前:"+str(fileList)) # 输出文件夹中包含的文件 cu

  • python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的文件量有40w+,故使用多进程 代码 import os import re from multiprocessing import Pool def getAllFilePath(pathFolder,filter=[".jpg",".txt"]): #遍历文件夹下所

  • Python批量修改文件名,文件再多也只要一秒

    目录 一.我为什么要写这篇 二.在原有的名字前中后批量加字 三.所有文件重新命名并添加序号 四.导入Excel数据批量修改为文件名 一.我为什么要写这篇 好兄弟们,妹子要少看,技能要多学,每天一个小技巧,撩妹手段少不了~ 昨天有人问我怎么批量修改文件名,然后我随便写了一种,他说我不nice,这我就忍不住了,反手就给他写了好几种,你们来看看,这个到底刑不刑. 很多兄弟在学习Python的时候因为不太明确学习方向,没有好的学习资料,遇到问题也没人解答,就很难受,甚至可能学着学着就放弃了,直接私我就行

  • Python批量修改文件名实例操作分享

    此处以修改图片文件名为例,将图片复制到新的目录中再修改名称~ 原始文件名如下: 修改后的效果如下: 代码: 实现将one文件夹中的每一个图片复制到two文件夹并修改图片名为按照a.b.c.d递增排序 思路:重命名为新建一个文件将原来文件内容复制过去 import os   def alterFileName(source,target):     print("当前文件夹下有以下几个文件>>>")     file_list=os.listdir(source)  

  • python批量修改文件名的三种方法实例

    目录 前言 一.python批量修改文件名 二.python批量修改文件名(按顺序) 三.python批量修改文件名(删除指定字符) 总结 前言 当我们从网站爬取若干张图片,或需要将一些txt.excel.jpg等大批量的文件修改为有规律的名称,方便整理. 提示:以下是本篇文章正文内容,下面案例可供参考 一.python批量修改文件名 提示:待修改的文件夹下只能包含需要修改的文件,然后更改源码里面的路径即可. 1.源码 代码如下(示例): #批量修改文件名 #批量修改图片文件名 import o

  • PHP实现批量修改文件名的方法示例

    本文实例讲述了PHP实现批量修改文件名的方法.分享给大家供大家参考,具体如下: 需求描述: 某个文件夹下有100个文件,现在需要将这个100个文件的文件名后添加字符串Abc(后缀名保持不变). 代码实现: 方法一 <?php $dir = __DIR__."\image\\"; $list = scandir($dir); foreach ($list as $item) { if(!in_array($item,['.','..'])){ $arr = explode(&quo

随机推荐