讨厌上载电影和电视剧文件名中的多余字符,搞得文件名好长,可以使用上面的Python代码

讨厌下载电影和电视剧文件名中的多余字符,搞得文件名好长,可以使用下面的Python代码

讨厌下载电影和电视剧文件名中的多余字符,搞得文件名好长,可以使用下面的Python代码,自行修改即可.

#!\usr\bin\env python
# -*- coding: utf-8 -*-
# Author: 吴徐平
# FileName: RefineFileName.py
# Function: 
# 下载的电影电视文件名太长,
# 常常含有多余的字符,如'中英双字幕',
# 可以使用本Python代码去掉
# Using python 2.7.X,win xp sp3

import sys
import os


# 文件夹目录列表
FileDirectoryList=[\
u'E:\\电视电影\\绿箭',\
u'E:\\电视电影\\惊世',\
u'E:\\电视电影\\海军罪案调查处.NCIS',\
u"E:\\电视电影\\梅林.Merlin",\
u"E:\\电视电影\\警察世家.Blue.Bloods"\
]


# 文件名中必须去掉的字符
MustReplaceStringList=[\
u'_xvidfov',\
u'XviDDEMAND',\
u'XviDREWARD',\
u'Rip.XviDWiDE',\
u'www.dy2018.com',\
u'深影字幕组',\
u'人人影视',\
u'YYeTs',\
u'五零字幕组',\
u'中文字幕',\
u'中英字幕',\
u'中英双字幕',\
u'SPS字幕组出品',\
u'滚滚作品',\
u'中英双字',\
u'HDTVrip',\
u'WEBrip',\
u'dvdrip',\
u'BDRip',\
u'BD',\
u'HD',\
u'DVD',\
u'720p',\
u'rip',\
u'-',\
u'V2',\
u'[',\
u']',\
u'(',\
u')',\
u':',\
]


# 去掉所有不必要的字符
NewString=u'';

# 自定义重命名文件的函数
def RenameFileName(OldFileName,NewFileName):
    os.rename(OldFileName, NewFileName)
    oldpath,oldfn = os.path.split(OldFileName)
    newpath,newfn = os.path.split(NewFileName)
    #print ([oldfn,'--->',newfn])
    print (oldfn.encode('ascii','ignore')+'  -->  '+newfn.encode('ascii','ignore'))      


#正则表达式替换,最多一次,忽略大小写
def StringRegexReplace(pattern,repl,string):
    import re
    return  re.sub(pattern, repl, string, count=1, flags=re.I)  
    


# 循环#硬盘的电影电视剧所有目录下的文件
for FileDirectory in FileDirectoryList:    
    FileNamesList=os.listdir(FileDirectory)
    
    # 循环重新命名文件
    for filenamei in FileNamesList:
        # '''循环修改文件名'''
        OldFileName=os.path.join(FileDirectory,filenamei)
        # 首先去掉文件名中的空格字符
        RefinedFileName=OldFileName.replace(u' ',NewString)
        # 循环必须去掉的文件名列表
        for MustReplaceString in MustReplaceStringList:
            RefinedFileName=RefinedFileName.replace(MustReplaceString,NewString)
            
        # 经常出现两个点以上,直接替换成一个点
        RefinedFileName=RefinedFileName.replace(u'....',u'.')
        RefinedFileName=RefinedFileName.replace(u'...',u'.')
        RefinedFileName=RefinedFileName.replace(u'..',u'.')
        # 可以重新命名了
        NewFileName=os.path.join(FileDirectory,RefinedFileName) 
        RenameFileName(OldFileName,NewFileName)