国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

去除下載電影和電視劇文件名中的多余字符[python實現]

2019-11-14 17:36:04
字體:
來源:轉載
供稿:網友

討厭下載電影和電視劇文件名中的多余字符(如網址和廣告字樣),,搞得文件名好長,可以使用下面的Python代碼,自行修改即可.

[python] view plaincopy
 
  1. #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. # Author: 吳徐平  
  4. # FileName: RefineFileName.py  
  5. # Function:   
  6. # 下載的電影電視文件名太長,  
  7. # 常常含有多余的字符,如'中英雙字幕',  
  8. # 可以使用本Python代碼去掉  
  9. # Using python 2.7.X,win xp sp3  
  10.   
  11. import sys  
  12. import os  
  13. import re  
  14.   
  15.   
  16. # 文件夾目錄列表  
  17. FileDirectoryList=[/  
  18. u"E://電視電影//都市俠盜.Leverage",/  
  19. u"E://電視電影//犯罪心理.Criminal.Minds",/  
  20. u"E://電視電影//海軍罪案調查處.NCIS",/  
  21. u"E://電視電影//警察世家.Blue.Bloods"/  
  22. ]  
  23.   
  24. #文件名開頭處是否需要添加的字符串  
  25. #不需要添加字符時,留空(或空白)字符來表示  
  26. AddStringList=[/  
  27. u'Leverage',/  
  28. u'Criminal.Minds',/  
  29. u'NCIS.',/  
  30. u'Blue.Bloods.'  
  31. ]  
  32.   
  33. # 文件名中必須去掉的字符  
  34. MustReplaceStringList=[/  
  35. u'都市俠盜',/  
  36. u'犯罪心理',/  
  37. u'海軍罪案調查處',/  
  38. u'警察世家',/  
  39. u'人人影視',/  
  40. u'SFiles',/  
  41. u'YYeTs',/  
  42. ]  
  43.   
  44.   
  45.   
  46. # 去掉所有不必要的字符  
  47. NewString=u'';  
  48.   
  49. # 自定義重命名文件的函數  
  50. def RenameFileName(OldFileName,NewFileName):  
  51.     oldpath,oldfn = os.path.split(OldFileName)  
  52.     newpath,newfn = os.path.split(NewFileName)  
  53.     PRint(oldpath.encode('ascii','ignore'))  
  54.     os.rename(OldFileName, NewFileName)  
  55.     #print (oldfn.encode('ascii','ignore')+'  -->  '+newfn.encode('ascii','ignore'))        
  56.   
  57.   
  58. #正則表達式替換,最多一次,忽略大小寫  
  59. def StringRegexReplace(pattern,repl,string):  
  60.     return  re.sub(pattern, repl, string, count=1, flags=re.I)    
  61.       
  62.   
  63.   
  64. # 循環#硬盤的電影電視劇所有目錄下的文件  
  65. for FileDirectory in FileDirectoryList:      
  66.     FileNamesList=os.listdir(FileDirectory)      
  67.     # 循環重新命名文件  
  68.     for filenamei in FileNamesList:                 
  69.         # 首先去掉文件名中的空格字符  
  70.         RefinedFileName=filenamei.replace(u' ',NewString)  
  71.         # 循環必須去掉的文件名列表  
  72.         for MustReplaceString in MustReplaceStringList:  
  73.             RefinedFileName=RefinedFileName.replace(MustReplaceString,NewString)  
  74.         #去掉錄制信息  
  75.         RefinedFileName=StringRegexReplace(u'(?<=[/./-_])[^.]*r'',RefinedFileName)  
  76.         RefinedFileName=StringRegexReplace(u'(?<=[/./-_])xvi[^.]*(?=[/./-_])','',RefinedFileName)  
  77.         #去掉分辨率  
  78.         RefinedFileName=StringRegexReplace('/d{1,4}X/d{1,4}','',RefinedFileName)  
  79.         #去掉[*]里面的所有內容  
  80.         RefinedFileName=StringRegexReplace(u'/[.*/]','',RefinedFileName)  
  81.         #去掉網址  
  82.         RefinedFileName=StringRegexReplace(u'www/..*/.((com)|(net)|(cn)|(org))','',RefinedFileName)          
  83.         #去掉字幕(組)的字樣  
  84.         RefinedFileName=StringRegexReplace(u'(?<=[/./-_])[^.]*字幕組?','',RefinedFileName)  
  85.         #去掉出品和作品字樣  
  86.         RefinedFileName=StringRegexReplace(u'(?<=[/./-_])[^.]*[出作]品','',RefinedFileName)  
  87.         #去掉開頭的點.下劃線_連接符-等  
  88.         RefinedFileName=StringRegexReplace(u'^[._/-]','',RefinedFileName)   
  89.         # 經常出現兩個點以上,直接替換成一個點  
  90.         RefinedFileName=RefinedFileName.replace(u'...',u'.')  
  91.         RefinedFileName=RefinedFileName.replace(u'..',u'.')  
  92.           
  93.           
  94.         # 可以重新命名了  
  95.         OldFileName=os.path.join(FileDirectory,filenamei)  
  96.         NewFileName=os.path.join(FileDirectory,RefinedFileName)   
  97.         RenameFileName(OldFileName,NewFileName)  
  98.   
  99.   
  100. ####下面的代碼在文件頭添加字符串  
  101. #判斷是否已經添加了字符串  
  102. def HasAddString(AddString0,FileNameString0):  
  103.     if (len(AddString0.strip())<1):#AddString0為空字符不需要再添加任何字符了  
  104.         print('Empty AddString,No need to add to : '+ FileNameString0.encode('ascii','ignore'))  
  105.         return True  
  106.     else:              
  107.         AddString=AddString0.strip().lower()  
  108.         FileNameString=FileNameString0.strip().lower()  
  109.         if(len(FileNameString)<=len(AddString)):  
  110.             return False  
  111.         else:  
  112.                 if(FileNameString[0:(len(AddString)-1)]==AddString[0:(len(AddString)-1)]):  
  113.                     return True  
  114.                 else:  
  115.                     return False  
  116.           
  117.               
  118.   
  119. DirCounter=0;  
  120. # 循環#硬盤的電影電視劇所有目錄下的文件  
  121. for FileDirectory in FileDirectoryList:  
  122.     FileNamesList=os.listdir(FileDirectory)  
  123.     AddString =AddStringList[DirCounter]  
  124.     DirCounter=DirCounter+1     
  125.     # 循環重新命名文件  
  126.     for filenamei in FileNamesList:                 
  127.         #已經加過的文件名不再添加字符了  
  128.         if HasAddString(AddString,filenamei):  
  129.             print(filenamei.encode('ascii','ignore')+' : ALready Added Header String!')  
  130.         else:  
  131.             # 首先連接字符串  
  132.             RefinedFileName=AddString+filenamei  
  133.             # 可以重新命名了  
  134.             OldFileName=os.path.join(FileDirectory,filenamei)  
  135.             NewFileName=os.path.join(FileDirectory,RefinedFileName)   
  136.             RenameFileName(OldFileName,NewFileName)  
  137.             print(filenamei.encode('ascii','ignore')+' :  Add Header String, OK!')  
  138.               
  139.                   
  140.           
  141.           


 

對文件名的修改有特殊要求的,可以將StringRegexReplace函數用上.

下面的電視劇文件名看起來舒服多了:

看看文件名是不是清爽許多.....


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 买车| 德令哈市| 东平县| 湘西| 锦州市| 慈利县| 安阳县| 寿宁县| 宜阳县| 安乡县| 昭苏县| 民县| 永登县| 调兵山市| 扶余县| 井陉县| 汤原县| 根河市| 台南市| 桑日县| 罗山县| 榆社县| 叙永县| 富锦市| 西华县| 包头市| 东至县| 韶山市| 伊金霍洛旗| 钟山县| 吉木乃县| 霸州市| 砀山县| 太原市| 沭阳县| 通河县| 合川市| 河北省| 兖州市| 高雄市| 玉树县|