Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man die Verzeichnisgröße in Python?
Berechnen der Verzeichnisgröße mit Python
Das Berechnen der Größe eines Verzeichnisses in Python kann eine nützliche Aufgabe für die Speicherplatzverwaltung oder die Datenanalyse sein. Lassen Sie uns untersuchen, wie Sie diese Größe effizient berechnen können.
Dateigrößen mit os.walk summieren
Ein Ansatz besteht darin, das Verzeichnis und seine Unterverzeichnisse zu durchlaufen und die Dateigrößen zu summieren. Dies kann mit der Funktion os.walk implementiert werden:
<code class="python">import os def get_size(start_path='.'): total_size = 0 for dirpath, dirnames, filenames in os.walk(start_path): for f in filenames: fp = os.path.join(dirpath, f) if not os.path.islink(fp): total_size += os.path.getsize(fp) return total_size print(get_size(), 'bytes')</code>
Diese Funktion berechnet rekursiv die Verzeichnisgröße und liefert die Gesamtgröße in Bytes.
Einzeiler Mit os. listdir
Für eine schnelle Berechnung der Verzeichnisgröße ohne Berücksichtigung von Unterverzeichnissen können Sie einen Einzeiler verwenden:
<code class="python">import os sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>
Dieser Ausdruck verwendet os.listdir, um alle Dateien darin aufzulisten das aktuelle Verzeichnis und os.path.getsize, um deren Größe zu bestimmen.
Verwendung von os.stat und os.scandir
Alternativ können Sie os.stat oder verwenden os.scandir zur Berechnung der Dateigröße. os.stat bietet zusätzliche Dateiinformationen, einschließlich der Größe:
<code class="python">import os nbytes = sum(d.stat().st_size for d in os.scandir('.') if d.is_file())</code>
os.scandir bietet eine verbesserte Leistung in Python 3.5 und bietet eine effizientere Möglichkeit, durch Verzeichnisse zu iterieren.
Pathlib Lösung
Wenn Sie Python 3.4 verwenden, bietet die Pathlib-Bibliothek eine praktische Möglichkeit, Verzeichnisoperationen zu handhaben:
<code class="python">from pathlib import Path root_directory = Path('.') sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())</code>
Diese Pathlib-Lösung kombiniert die vorherigen Ansätze für eine prägnante und effiziente Berechnung.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Verzeichnisgröße in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!