bennym hat geschrieben:Code: Alles auswählen
import os
512 - int(os.system("du -s|awk {'print $1'}"))
Warum kommt nicht das Ergebniss von 512 - ''grosese aktulles Verzeichniss" raus?
Weil `os.system()` den Rückgabewert des Programms liefert und nicht dessen Bildschirmausgabe, die landet auf dem Bildschirm, darum siehst Du die dort auch.
Das Du von der 512 nichts siehst, liegt daran das Du nichts ausgibst. Wenn Du einfach so ``42`` in Dein Skript schreibst, wird das ja auch nicht ausgegeben, sondern erst wenn Du ein ``print`` davor setzt.
Wenn Du das tust, dann wird nach der Verzeichnisgrösse wahrscheinlich eine 512 ausgegeben weil der Rückgabewert eines Programms per Konvention 0 ist, falls keine Fehler aufgetreten sind.
Wenn Du die Ausgabe eines Programms haben möchtest, dann schau mal in das `subprocess` Modul.
Aber ich würde lieber `os.walk()` und `os.path.getsize()` benutzen, dann bist Du nicht darauf angewiesen, dass ``du`` und ``awk`` auf dem System vorhanden sind.