2012-09-23 33 views
0

該腳本基本上是創建一個包含所有目錄中所有文件的列表。任何想法爲什麼當它必須掃描大於幾個文件的目錄時似乎崩潰了?似乎無法使用我的Python腳本抓取深層目錄,有什麼想法?

import os 

correctlyNamedDirectories = [] 

def crawlDirectories(directory): 
    for dirname, dirnames, filenames in os.walk(directory): 
     for subdirname in dirnames: 
      correctlyNamedDirectories.append(os.path.join(dirname, subdirname)) 
     for filename in filenames: 
      correctlyNamedDirectories.append(os.path.join(dirname, filename)) 

crawlDirectories('.') 

print correctlyNamedDirectories 

此外,有沒有更清潔的方式來寫這個?

+3

* *崩潰?任何特定的錯誤,或者你的意思是segfaults? –

+0

如果你想知道是否有更好的編寫代碼的方法,你可能需要考慮[CodeReview](http://codereview.stackexchange.com/)。 –

回答

1

較短的方法與列表理解:

correctlyNamedDirectories = [os.path.join(path, subname) for path, dirnames, filenames in os.walk(directory) for subname in dirnames + filenames] 
+0

回來無效的語法。 – Matthew

+0

更正爲''os.path.join()''沒有右括號並且沒有列表。 –

+0

@Lattyware:感謝您的更正。 –

相關問題