2011-09-10 16 views
3

我建立一個音樂文件管理器(在python2),其中我讀了所有的文件&的元數據,然後把這些文件中所要求的文件夾中的文件的總數。有效的方式來找到一個目錄

現在,我已經準備好與命令行界面,但此腳本的方式反饋顯示「哪個文件是其工作的權利嗎?」。

如果目錄包含5000個mp3文件,應該有某種反饋。

所以,我想知道最有效的方式找到總 數目錄中可用的MP3(遞歸掃描所有 隨後的目錄中太)。

我的想法是跟蹤處理的總文件並根據該文件顯示進度條。有沒有更好的方式(性能明智),請隨時引導。

我希望我的應用程序沒有任何種類的平臺相關代碼。如果有嚴重的性能損失堅持這個想法,請爲Linux提出建議。

+0

順便說一句,在我的python腳本中,我使用os.walk來查看所有文件和進程。 –

回答

2

我很抱歉這樣說,但沒有沒有任何方式能夠更有效地做到這一點比遞歸查找文件(至少是平臺(或文件系統)無關)。

如果文件系統可以幫你會,你不能做任何事情來幫助它。

這是不可能做到這一點不遞歸掃描的原因是文件系統是如何設計的。 一個目錄可以看作一個文件,它包含它包含的所有文件的列表。要在子目錄中查找某些內容,必須首先打開該目錄,然後打開子目錄並搜索該目錄。

+1

那麼,這是你談論http://sprunge.us/VWAY?python的唯一方法嗎? –

+0

當然,但不應該過濾,以確保它們是MP3文件? – nulvinge

+0

雅。我一定會那樣做。我只是在談論骨架。 –

1

@shadyabhi:如果你有很多的子目錄也許你可以通過使用os.listdir和multiprocessing.Process遞歸到每個文件夾加速比的過程。

+0

每個目錄不超過20個文件。所以,我不認爲它的價值,除非我創造了4個主題或者什麼東西,它們都和諧地工作。 –

+0

@shadyabhi:用這麼少的文件,不要認爲子處理或線程值得額外的工作,也許可以比單線程慢 – PabloG

相關問題