2013-05-06 32 views
1

我需要使某個文件夾hierachy出一個詞典。Python搜索文件夾,並作出一個詞典

我有一個文件夾在/ home /桌面/歌曲---裏面有文件夾:「A」和另一個「B」。文件夾A和B裏面有文件夾:「1」和「2」

我想讓文件夾裏面的「歌曲」並獲得A和B文件夾。 然後用它們製作一本詞典。像這樣:

A={'1','2'} 
B={'1','2'} 

這樣,如果我更新我的文件夾腳本得到更新。

我開始尋找這樣的事情:

os.chdir('/home/Desktop/songs') 
letter = [d for d in os.listdir('.') if os.path.isdir(d)] 
print letter 
-----> A,B 

但我不知道如何追加他們的字典。

+0

如果你描述出了什麼問題它會節省一些時間,當你運行你的代碼。 – 2013-05-06 18:21:15

+0

所以你想要結果字典爲'{「A」:[「1」,「2」],「B」:[「1」,「2」]}? – 2013-05-06 18:21:30

+0

每次腳本運行時,爲什麼不使用'os.walk()'而是?它會緩解你的目錄。 – 2013-05-06 18:22:46

回答

1

要獲取/ home/Desktop/songs下的文件夾的後代,您只需遍歷使用理解識別出的文件夾的子項。舉一個簡單的例子,(雖然你可能想通過使用適當的循環,使這個更具可讀性):

import os 

os.chdir('/home/Desktop/songs') 
letter = {d : [child 
        for child in os.listdir('./' + d) 
        if os.path.isdir('./' + d) 
       ] 
       for d in os.listdir('.') 
       if os.path.isdir(d) 
     } 
print letter 

輸出:

{'A': ['1', '2'], 'B': ['1', '2']}