2017-05-04 33 views
0

我是Python新手,我需要從一個具有超過500k文件的目錄中獲取大小。我在互聯網上發現了一些應該很快的代碼。不知何故,它不工作,我不知道爲什麼。 當前輸出只是'測試',所以它甚至不會輸入該功能。用Python測量目錄大小

import time 
import os 

start_time = time.time() 
print('Test') 
def getSize(path): 
    print('Test2') 
    total = 0 
    for entry in os.scandir(path): 
     if entry.is_dir(follow_symlinks=False): 
      total += getSize(entry.path) 
     else: 
      total += entry.stat(follow_symlinks=False).st_size 
    return total 

    print (float(getSize('U:\Java'))/1024/1024/1024) 
    print("--- %s Sekunden ---" % round(time.time() - start_time, 2)) 

附加問題:有沒有更快的方式來搜索這樣的大目錄與Python或其他語言?

+1

怎麼樣http://stackoverflow.com/questions/1392413/calculating-a-directory-size-using-python –

+0

嗯,你真的調用函數?像'getSize('path/to/filder')'作爲最後一行。 – jojo

+0

我已經試過那個。我也試過這個。 http://stackoverflow.com/a/2485804/7862001第二個比os.walk的方法更快。 – wenzel267

回答

2

程序中調用函數的最後兩行是縮進的,因此被認爲是函數的一部分,並且不會執行。 簡單地縮寫它們。

+0

這是正確的答案。非常感謝你。 – wenzel267