我一直在試圖弄清楚如何檢索(快速)與python給定的HFS +驅動器上的文件數量。如何用Python確定驅動器上的文件數量?
我一直在玩os.statvfs等,但不能完全得到任何東西(這似乎對我有幫助)。
任何想法?
編輯:讓我更具體一點。 =]
由於各種原因我正在寫一個圍繞rsync的類似於時間機器的包裝,並且希望rsync驅動器要掃描的驅動器上的文件數量非常快(不一定非常完美)。通過這種方式,我可以觀看rsync的進度(如果您將它稱爲rsync -ax --progress
或-P
選項),因爲它會構建其初始文件列表,並向用戶報告百分比和/或ETA。
這與實際的備份完全分開,跟蹤進度沒有問題。但對於我正在處理的數百萬個文件的驅動器,這意味着用戶正在觀看文件數量的計數器上升幾分鐘。
我已經嘗試玩os.statvfs完全到目前爲止的答案中描述的方法,但結果對我來說沒有意義。
>>> import os
>>> os.statvfs('/').f_files - os.statvfs('/').f_ffree
64171205L
更便攜的方式給我約110萬這臺機器,這是一樣的所有其他指標我已經看到了這臺機器上,包括rsync的運行它的籌備工作:
>>> sum(len(filenames) for path, dirnames, filenames in os.walk("/"))
1084224
注意第一種方法是即時的,而第二種方法讓我在15分鐘後回來更新,因爲它需要很長時間才能運行。
有誰知道類似的方法來獲得這個數字,或者我怎麼對待/解釋os.statvfs數字有什麼問題?
os.statvfs [os.B_FILES]的輸出如何與您期望的不同? (如果你可以粘貼來自os.statvfs的示例輸出,並解釋*爲什麼*這沒有幫助,那可以幫助那些不瞭解OS X的人幫助你)。 – 2009-02-22 03:54:25
@Charles:我已經用一些實際的細節更新了我的問題... – 2009-02-24 17:08:29
您可以使用之前rsync運行中的一個數字。它快速,便攜,並且對於10 ** 6個文件和任何合理的備份策略,它會給你1%或更高的精度。 – jfs 2009-02-24 18:25:49