Windows: Ordnergröße bestimmen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Code: Alles auswählen

0.515999794006 win32
4.5150001049 pure-python
0.484999895096 win32
4.48400020599 pure-python
0.484999895096 win32
4.46799993515 pure-python
0.485000133514 win32
4.40599989891 pure-python
0.483999967575 win32
4.43799996376 pure-python

Code: Alles auswählen

import time
import win32com.client
import os

def main():
    for i in range(5):
        path = 'C:\\Programme'
        
        start = time.time()
        fso = win32com.client.Dispatch('Scripting.FileSystemObject')
        size = fso.GetFolder(path).Size
        print time.time()-start, 'win32'
        
        start = time.time()
        size = 0
        for root, dirs, filenames in os.walk(path):
            for filename in filenames:
                 size += os.path.getsize(os.path.join(root, filename))
        print time.time()-start, 'pure-python'
    
if __name__ == '__main__':
    main()
Der Unterschied ist wohl nicht zu übersehen...;)
Ich warte immer noch auf die Lösung des Problems^^
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

@BlackJack: Der Code ist von anno Tuck, und wie schon erwähnt, unter hohem Streß (180 Arbeitstunden in 2 Wochen vergißt man nicht) entstanden. Das einzige was mich damals interessiert hat waren Zahlen, die ich der Buchhaltung in die Hand drücken konnte ohne stundenlang irgendwelche Verzeichnisgrößen zusammenzurechnen. Ich meine mich auch erinnern zu können das ich was von "sollte ich bei Gelegenheit mal überarbeiten" geschrieben habe. Ist dein Code von vor [Zeitraum] perfekt?
BlackJack

@querdenker: Natürlich ist mein Code nicht immer perfekt, aber ich bemühe mich den dann auch nicht als Lösung anzubieten. :-)
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Ok, Punkt für dich. Ich hätte vielleicht einfach ein dickes "WARNUNG: SCHLECHTER CODE" über das Posting kleben sollen. :D

Gerade noch mal gebuddelt: Die Berechungsgeschichte kommt aus einer noch älteren Sache. Ich muß das Ding wirklich mal überarbeiten.

EDIT: habe mal in meinem Beispiel den 'Müll' entfernt.
Antworten