2017-05-08 69 views
-1

我想查看我的視頻文件並刪除孤兒字幕和空目錄。我是一名Python初學者,只做了孤兒字幕的一部分,但我的代碼沒有查看子目錄,但給了我多個rootdir的結果。所以我猜猜我的一個循環是錯誤的。 這裏是我的代碼,感謝您的建議:尋找孤兒字幕

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 

import os 

rootdir='/mnt/nas' 

for root, subdirs, files in os.walk(rootdir): 
    for filename in files: 

     # looking for subtitles files 
     if filename.endswith('.srt'): 
      filename_srt = os.path.splitext(filename) 

      # looking for video files 
      for filename_other in files: 
       if filename_other.endswith(('avi', 'mkv', 'mp4')): 
        filename_other_vid = os.path.splitext(filename_other) 

        # if the video name isn't included in a subtitle name 
        if filename_other_vid[0] not in filename_srt[0]: 
         print(filename_srt) 

回答

1

在你的代碼的問題是,一旦你遍歷文件,您再次遍歷它不要求filename_other_vid。迭代文件後,您可以在一個循環中提取字幕和視頻名稱。

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 

import os 

rootdir='/mnt/nas' 

for root, subdirs, files in os.walk(rootdir): 
    for filename in files: 

     # looking for subtitles files 
     if filename.endswith('.srt'): 
      filename_srt = os.path.splitext(filename) 

     # looking for video files 
     for filename_other in files: 
      if filename_other.endswith(('avi', 'mkv', 'mp4')): 
       filename_other_vid = os.path.splitext(filename_other) 

     # if the video name isn't included in a subtitle name 
     if filename_other_vid[0] not in filename_srt[0]: 
      print(filename_srt) 
+0

也許再加一點解釋?一個簡單的「嘗試這個」和代碼(這可能是正確的)對實際問題或錯誤沒有多少意義,我們都在這裏學習,不是嗎? ;) –

+1

@ChristianKönig絕對,我尊重你的意見,讓我補充說明,你是我第一個哥們,記得:) –