2012-09-27 28 views
0

我想檢索目錄中的文件列表。 使用subprocess.Popen或使用os.listdir最快的方法是什麼?該目錄包含10000個文件。並且這必須遞歸地完成以從目錄及其子目錄檢索列表。我知道我們可以使用os.walk來檢索目錄的內容,但os.walk只是不適合我所想做的。哪一個是獲取目錄列表的更快方式subprocess.Popen或os.listdir

感謝

+4

我期望'os.listdir'可以更快,因爲你不需要產生一個子進程,他們可能使用基本相同的代碼來獲取列表。你爲什麼不「定時」看看? – mgilson

+1

爲什麼'os.walk'不適合你? –

+0

@ mgilson -I測試了它們,發現os.listdir更快,但我不知道背後的原因。那就是爲什麼發佈這個問題 –

回答

3

os.listdir很可能是編譯的C調用該ls做同樣的基礎libc中的系統方法。

相反,subprocess.Popen分叉了一個全新的過程,這是一個昂貴的系統操作,需要新的文件句柄來處理tty操作。

相關問題