Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man die Verzeichnisgröße in Python?

Wie berechnet man die Verzeichnisgröße in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 03:46:01463Durchsuche

How to Calculate Directory Size 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn