Wie Groesse eines Ordners feststellen?

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.
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Wie Groesse eines Ordners feststellen?

Beitragvon bennym » Dienstag 24. Oktober 2006, 15:44

Hallo!
Ich schreib grad ein script, dass den MP3 player unter linux mit musik versorgt.
Wie kann ich rausfinden, ob ein Ordner mehr als 512MB/... Speicher verbraucht, sodass dann der kopiervorgang abbricht?

mfg benny
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Dienstag 24. Oktober 2006, 16:07

Du musst alle Dateigrössen im Ordner zusammenzählen.

Einen anderen weg wüsste ich jetzt nicht direkt.

Gruss
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Beitragvon bennym » Dienstag 24. Oktober 2006, 19:22

so?

if os.path.getsize(tempdir + up_file)>10485760L:
response.write("Die Datei ist groeßer als 10 MB.")
raise spyceDone


Ich habs aus http://www.python-forum.de/topic-3559.html
Wie pass ich das jetzt an?
In dem Thread wird ja irgendwie gesagt dass dieser part fehler enthaelt.


mfg benny
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Dienstag 24. Oktober 2006, 19:31

Du kannst auch einfach du via subprocess aufrufen und den output auslesen.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Mittwoch 25. Oktober 2006, 08:37

Wie waere es mit dieser Funktion?

Code: Alles auswählen

def get_dir_size(dirname):
    """ Size of a directory. """
   
    size = 0;

    for (dirpath, dirnames, filenames) in os.walk(dirname):
        size += os.path.getsize(dirpath);
        for ffile in filenames:
            size += os.path.getsize(os.path.join(dirpath, ffile))

    return size


Im Gegensatz zu du werden hier aber bei symbolischen Links die Dateigroessen der verlinkten Dateien gezaehlt, nicht die der Links selbst. Hardlinks habe ich nicht getestet.
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Beitragvon bennym » Mittwoch 25. Oktober 2006, 18:28

Geil !!! :D Danke!!!
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Mittwoch 25. Oktober 2006, 18:37

Hi

Rebecca, warum machst du noch ein getsize vom Verzeichnis? Gibt das mal auch nicht 0 zurück?

Gruss
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Mittwoch 25. Oktober 2006, 19:21

Bei mir (Linux) gibt das immer etwas ungleich null zurueck. Das ist die Groesse des Verzeichnisses (nicht des Verzeichnisinhalts). Ein Verzeichnis ist unter Linux ja in Wesentlichen auch nur eine Datei, in der drinsteht, welche Dateien in dem Verzeichnis drin sind.

Unter was fuer einem Betriebssystem hast du es ausprobiert?
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Donnerstag 26. Oktober 2006, 05:36

Hi

Unter WinXP :)

Gruss

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder