Python批量修改文件夹中的字幕文件名与视频一致

在看动画时经常会下载一些压制组的BDRip作品,再去寻找一些字幕组的外挂字幕。但是字幕文件和视频文件往往不一致,需要统一后才能被播放器自动识别。

#!/usr/bin/env python
# coding=UTF-8
'''
@Author: Zerui Han  hanzr.nju@gmail.com
@Date: 2019-07-15 18:42:40
@LastEditTime: 2019-09-30 10:26:31
@Description: This code can automatically change the filename \\
    of all subtitle files (.ass, .ssa, .srt, .sup or you can \\
    modify it manually) in the folder to the same filename as \\
    the video files (.mkv, .mp4 or others). \\
    Just modify the path to your folder in the last line of code.
'''
import os


def get_file_name(path):
    filetypeList = ['.mkv', '.mp4']  # 视频扩展名
    filenameList = []
    subtypeList = ['.ass', '.ssa', '.srt', '.sup']  # 字幕扩展名
    subtitleList = []
    filelist = os.listdir(path)
    for filename in filelist:
        filetype = os.path.splitext(filename)[1]
        filename = os.path.splitext(filename)[0]
        if filetype in filetypeList:
            filenameList.append(filename)  # 返回mkv mp4文件名(不包含扩展名)
        elif filetype in subtypeList:
            subtitleList.append(filename)  # 返回字幕文件名(包含扩展名)
    return filenameList, subtitleList


def rename(path, filenameList, subtitleList):
    for i, filename in enumerate(subtitleList):  # 遍历所有字幕文件
        subtype = os.path.splitext(filename)[1]
        newName = os.path.join(path, filenameList[i]+subtype)
        oldName = os.path.join(path, filename)
        os.rename(oldName, newName)


def main(path=os.getcwd()):  # 若main()函数无输入则path=当前目录
    filename_list, subtitle_list = get_file_name(path)
    rename(path, filename_list, subtitle_list)


if __name__ == '__main__':
    # 文件夹路径中的斜杠\必须使用反斜杠/或者双斜杠\\代替!
    # 例如 'G:\\anime\\Fate Zero_ 2011_ VCB-Studio'
    # 或   'G:/anime/Fate Zero_ 2011_ VCB-Studio'
    # 或使用r+路径 r'G:\anime\Fate Zero_ 2011_ VCB-Studio'
    main(r'G:\anime\Fate Stay Night_ 2006_ VCB-Studio')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值