Seite 1 von 1
ordnergröße feststellen mit os?
Verfasst: Dienstag 15. März 2005, 18:57
von knekke
Hallo,
im os modul gibts ja die funktion getsize, die funktioniert aber nur mit dateien und leider nicht mit verzeichnissen (oder ich machs einfach nur falsch).
Weiss jemand, wie es richtig geht?
Ich könnte die ordnergröße mit os.sys("du -h") rausbekommen, da müsste mir ja theoretisch alles angezeigt werden, aber ich sitze erstens gerade an einem win-rechner und zweitens werden dabei glaube ich nur 0 oder 1 als werte übergeben. D.h. diese Variante läuft nicht auf allen Systemen, und ich kann das Ergebnis nicht weiterverwenden....
danke
Verfasst: Dienstag 15. März 2005, 20:26
von chaos
also als faule Lösung würd ein
unter *NIX helfen.
Bei Windows fällt mir momentan nur ein, über alle Dateien zu iterieren:
0.) Liste alle Dateien auf
1.) Teste ob Datei Verzeichnis ist
2.) Falls ja merk dir aktuellen Dateinamen und geh in Unterverzeichnis und fang mit 0. an
3.) Sonst: Ermittle die Größe der Datei und zähle diese zur Gesammtgröße hinzu
4.) Nimm die nächste Datei und geh zu 1.
Verfasst: Dienstag 15. März 2005, 20:45
von knekke
ja, die beiden Ideen hatte ich auch noch, wobei die erste unter win nicht zieht, und ich bei der zweiten zuviel aufwand vermutet habe, zumal ich ja nicht weiß, ob es nicht einen ganz simplen befehl dafür gibt.
Aber ich werd mich mal an die iteration machen. Übt ja auch
Bin mal gespannt wie lange das skript dann dafür braucht.....
Verfasst: Dienstag 15. März 2005, 20:55
von jens
Unter Windows gibt es keine Möglichkeit zu ermitteln, wie groß ein Verzeichnis mit allen Unterverzeichnissen ist... Das liegt daran, das FAT oder NTFS das nicht abspeichert! Aber speichert denn ext3 ect. die Information ??? Oder ist "du.h" nur ein Skript welches auch rekursiv arbeitet???
Verfasst: Dienstag 15. März 2005, 21:01
von chaos
Uuups das sollte nicht du.h sondern du -h sein.
du ist ein *NIX-Systemprogram, hier die manpage:
du Manpage
ciao
chaos
PS Kam leider mit [url] und <a href nicht hin ;(
Edit (Leonidas): Hab die URL mal in Tags gesetzt.
Verfasst: Dienstag 15. März 2005, 22:57
von BlackJack
jens hat geschrieben:Unter Windows gibt es keine Möglichkeit zu ermitteln, wie groß ein Verzeichnis mit allen Unterverzeichnissen ist... Das liegt daran, das FAT oder NTFS das nicht abspeichert! Aber speichert denn ext3 ect. die Information ??? Oder ist "du.h" nur ein Skript welches auch rekursiv arbeitet???
``du`` ist ein Programm, das rekursiv arbeitet. Wie sollte es auch anders gehen? Das System müsste sonst immer wenn man eine Datei anlegt oder löscht die Grösseninformationen in jedem Verzeichnis aufwärts bis zur Wurzel anpassen.
Ausserdem sollte man aufpassen mit dem Begriff "Grösse eines Verzeichnisses" ? das wird sehr wohl gespeichert und man kann es auch abfragen. Diese Grösse gibt an, wieviel Platz die
Verzeichniseinträge der direkt enthaltenen Dateien und Unterverzeichnisse belegen. Das ist aber etwas anderes als die Gesamtgrösse der Dateien in allen Unterverzeichnissen.
Verfasst: Mittwoch 16. März 2005, 15:14
von querdenker
...den Python-Weg findet man in der original Python-Doku,
und zwar
hier
da ich es selber regelmäßig einsetze, kann ich auch noch was über die Performance sagen: über ein Netzlaufwerk fast genauso schnell wie ein dir /S auf der Kommandozeile. Unter Windows über Eigenschaften die Ordnergröße anzeigen lassen macht auch nichts anderes als durch den/die Ordner laufen und dabei addieren...
mfg, querdenker