2008-12-02 66 views

回答

10

你的意思是這樣的?

import os 
for path, dirs, files in os.walk(root): 
    for f in files: 
     print path, f, os.path.getsize(os.path.join(path, f)) 
5

除遞歸調用stat外,沒有其他方法可以計算大小。這與Python無關;操作系統不提供其他方式。

算法不一定是遞歸的;你可以使用os.walk。

可能有兩個例外,使其更高效:

  1. 如果所有你想要的文件來衡量填滿一個分區,並且該分區沒有其他的文件,那麼你可以看看的磁盤使用情況分區。
  2. 如果您可以連續監視所有文件或負責自己創建所有文件,則可以生成增量磁盤使用情況。
0

如果你是一個POSIX系統,提供杜,你應該能夠使用pexpect.runsubprocess執行du <path to folder>以獲取文件夾和子文件的大小。請記住,它會輸出一個字符串,列出每個文件並彙總每個文件夾。 (查看du的手冊頁,看看你能做些什麼來限制它)。

相關問題