用于重命名手动下载的字幕文件,让播放器自动识别。
适用于剧集和字幕都存在一定的序列,但是下载的字幕与视频文件名称不一样的情况。视频名和字幕名都杂乱无章不行。
import os
import pathlib
import re
videos = []
subs = []
path = input('请输入路径:')
if not os.path.exists(path):
print('路径不存在!')
else:
str = input('请输入匹配序列(如"S01E#"):') #此输入的S01E#须为字幕名和视频文件名都存在的一段名称,用于匹配相同剧集,E#表示第几集,固定写法,如第二季输入S02E#。
vid = input("请输入视频文件后缀名(如:.mkv):")
sub = input("请输入字幕文件后缀名(如:.ass):")
dirlist = os.walk(path)
for root,dirs,files in dirlist:
for f in files:
full_path = os.path.join(root,f)
p = pathlib.Path(full_path)
ext = p.suffix
if ext == sub:
subs.append(f)
if ext == vid:
videos.append(f)
str = str.replace("#","")
for sub in subs:
comm = re.findall(r'%s\d+'%str,sub)[0]
s_path = os.path.join(path,sub)
s_p = pathlib.Path(s_path)
for video in videos:
if comm in video:
v_path = os.path.join(path,video)
v_p = pathlib.Path(v_path)
print(sub + " 重命名为:" + v_p.stem+s_p.suffix)
os.rename(s_path,path+"/"+v_p.stem+s_p.suffix)