2016-12-13 76 views
0
的HTML目錄樹

沒有人知道的一種方式,我可以把一個目錄路徑成一樹如下(使用Python 2.7)...生成在Python

<div> 
    <p class="toggle">item one</p> 
    <div class="child"> 

     <p>contained</p> 

     <p class="toggle">item</p> 
     <div class="child" hidden="true"> 
      <p>inner</p> 
     </div> 

     <p class="toggle">item</p> 
     <div class="child" hidden="true"> 
      <p>inner</p> 

      <p class="toggle">wow</p> 
      <div class="child" hidden="true"> 
       <p>waaay down</p> 
       <p>somefile.py</p> 
      </div> 

     </div> 

     <p class="toggle">item</p> 
     <div class="child" hidden="true"> 
      <p>inner</p> 
     </div> 

    </div> 
</div> 

編輯: 的目錄會讓人產生上面的輸出應該是這樣......

item one 
-contained 
-item 
--inner 
-item 
--inner 
--wow 
---waaay down 
---somefile.py 
-item 
--inner 

目錄需要有「切換」類,而應遵循包含目錄的內容股利。

如果有人可以弄清楚,那會很好,謝謝!我一直在試圖弄清楚這個問題。

+1

您應該編輯此問題以顯示輸入目錄結構以與輸出一起顯示,以便清楚地知道程序需要執行哪些操作。 – mVChr

+0

@mVChr謝謝指出! – wg4568

回答

1

所以......我想通了!遞歸函數就是答案。代碼如下

def generate_tree(path, html=""): 
    for file in os.listdir(path): 
     rel = path + "/" + file 
     if os.path.isdir(rel): 
      html += "<p class='toggle'>%s</p><div class='child' hidden='true'>" % (file) 
      html += generate_tree(rel) 
      html += "</div>" 
     else: 
      html += "<p>%s</p>" % (file) 
    return html