2016-12-31 95 views
1

我有一個生成從圖像中用os.walk跳過列表中的目錄?

def jpg_descended(folder): 
    matches = [] 
    for root, dirnames, filenames in os.walk(unicode(folder)): 
     for extension in ('*.jpg', '*.jpeg', '*.png'): 
      for filename in fnmatch.filter(filenames, extension): 
        matches.append(os.path.join(root, filename)) 
    return sorted(matches, key=os.path.getmtime, reverse=True) 

,但我怎麼能得到它跳過我已經把名單目錄的目錄列表的工作職能?

excludes = ["october", "december"] 

我希望它不會返回在名爲「月」或「月」或任何其他目錄我可以添加到排除列表目錄什麼。

任何和所有的幫助表示讚賞。

+0

[如何排除目錄使用os.walk時的可能的複製()?其他方法沒有工作](http://stackoverflow.com/questions/24883084/how-do-i-exclude-directories-when-using-os-walk-other-methods-havent-worked) –

回答

2

您可以通過刪除符合您要求的目錄來編輯dirnames。當topdown=True(默認值)爲os.walk時,阻止這些目錄被枚舉。

確保它是到位編輯的,例如:

dirnames[:] = [dirname for dirname in dirnames if dirname not in excludes] 
+0

啊!有用。謝謝。 – dxrth