使用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批量修改文件名的方,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:http://www.hellomao.top/2019/08/14/daily_shipinhebing/


猜你喜欢
- 如何存放或更新缓存?缓存数据来源是预知的,我们可以预先定义哪些 mutation 是缓存相关的。我们期望这个过程更自然一点,通过某种变化自动
- 这篇文章主要介绍了python列表生成器迭代器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 下边是我对部分内容的总结,里边偏向了T-SQL语句实现的总结,对于SQL Server Management Studio中对象管理器的操作
- 我们用下了asp代码简单统计了下载一个文件需要的时间:<%Function DownloadTime(intFileSize
- 下策——查询出结果后将时间排序后取第一条select * from a where create_time<="2017-0
- 身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转
- python 获取星期字符串程序如下#WeekNamePrintV1.pyweekStr="星期一星期二星期三星期四星期五星期六星
- 为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行Pandas基本数据操作的语法介绍。# 读取文件(读取保存文件后面会专门进行讲
- //如果之前有选中的,则把选中radio取消掉$("#tj_cat .pro_category").each(funct
- MySQL 分区技术(是mysql 5.1以版本后开始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术)1
- 导读我们在使用selenium打开google浏览器的时候,默认打开的是一个新的浏览器窗口,而且里面不带有任何的浏览器缓存信息。当我们想要爬
- 准备写一个操作Excel脚本却在导入包的时候出现了一个小问题导入包from Tkinter import Tkfrom time impor
- pytorch_pretrained_bert将tensorflow模型转化为pytorch模型BERT仓库里的模型是TensorFlow版
- 一、设置环境在 Ubuntu 机器上安装 SQL Server 2017和安装运行 GoLang 所需的依赖项。1.1、安装 SQL Ser
- 一,什么是mycat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL
- golang常用库之-pkg/errors包背景golang自带了错误信息包error只提供了简单的用法, 如errors.New(),和e
- 中小站点简单备份策略基于drupal的中小行网站,我们可以使用backup_migrate模块,该模块提供了定期备份的功能,备份的时间、保留
- 一、前言嗨,大家好,我是新发。最近需要做个小工具,可以通过python来读写Excel,实现增删改查操作。以前用的是xlrd和xlwt这两个
- 前言最近将使用爬虫爬取的链接保存到 mysql 数据库中时,发现我将链接使用 json_encode 保存时候,在数据库中却显示了转义字符,
- 但是,具有identity特性的字段,不需要具有唯一性,更不必须是主键。 可以通过,set identity_insert tablenam