上篇文章介绍调用ffmpeg批量剪切视频,但是对文件名有要求,主要是文件名里面不能有空白,有的话则传给ffmpeg的参数中文件名是断开的,ffmpeg无法识别空白前后的字符串是否属于同一文件名。
可以用C#编写程序批量修改文件名,但是用VS编写最简单的控制台程序都很麻烦。最近开始学习python,编写、运行python程序比较轻量化,本文记录使用python批量修改文件名的方法。
批量修改文件名的python程序主要参考文献1,并对其进行了调整。主要使用的python模块和函数如下:
- os模块。该模块提供了非常丰富的方法用来处理文件和目录;
- os.listdir。该函数返回指定的文件夹包含的文件或文件夹的名字的集合;
- os.rename。该函数重命名文件或目录;
- 字符串的endswith函数。该函数用于判断字符串是否以指定后缀结尾;
- 字符串的replace函数。该函数把字符串中的 旧字符串替换成新字符串。
全部的程序代码如下所示:
import os
path = r"D:\test"
files=os.listdir(path)
for onefile in files:
if not onefile.endswith(".mp4"):
continue
oldname=path+"\\"+onefile
newname=path+"\\"+onefile.replace(" ","_")
os.rename(oldname,newname)
print(oldname,"====>",newname)
直接在命令行中用python命令运行上述代码文件,下面两个图是程序运行效果。第一个图是修改前的截图,第二个图是修改后的截图。这里比较奇怪的是,程序正常运行结束后,按理说名字中已经把空格换成了下划线,但是视觉上看还是跟原来名字一样,只有查看文件属性的时候才看到名字已经是改过来了,暂时还搞不清楚是怎么回事。
使用python可以用短短10行代码完成批量修改文件名操作,这比在VS中用C#编程要简单的多(虽然C#语句也不会太长,但是打开VS、编写并调试代码、运行程序,这些步骤比用python多)。两者结合起来使用能更便捷地处理操作。
参考文献:
[1]https://blog.csdn.net/qq_38643064/article/details/88876418
[2]https://www.runoob.com/python3/python3-string-replace.html
[3]https://www.runoob.com/python3/python3-os-file-methods.html