Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die Größe eines Verzeichnisses in Python berechnen?

Wie kann ich die Größe eines Verzeichnisses in Python berechnen?

DDD
DDDOriginal
2024-11-02 06:20:29255Durchsuche

How Can I Calculate the Size of a Directory in Python?

Verzeichnisgröße mit Python berechnen: Ein umfassender Leitfaden

Beim Navigieren durch umfangreiche Dateisysteme kann die Bestimmung der Verzeichnisgröße von unschätzbarem Wert sein. Python bietet eine Reihe von Modulen, die diese Funktionalität umfassen.

Bedenken Sie den folgenden Python-Codeausschnitt:

<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)
            # Skip symbolic links
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)

    return total_size

print(get_size(), 'bytes')</code>

Diese Lösung bietet einen umfassenden Ansatz durch rekursives Durchlaufen von Unterverzeichnissen und Sammeln von Dateigrößen. Es vermeidet symbolische Links, um genaue Größenberechnungen sicherzustellen. Die formatierte Größe (z. B. Mb/Gb) wird nicht direkt einbezogen, kann aber problemlos als Folgeschritt hinzugefügt werden.

Zusätzlich wird für die Berechnung nur der Größe des Stammverzeichnisses ohne Abstieg in Unterverzeichnisse ein optimierter Ansatz verwendet os.listdir ist verfügbar:

<code class="python">import os

sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>

Dieses Code-Snippet summiert kompakt die Dateigrößen im aktuellen Verzeichnis, ohne Unterverzeichnisse.

Zur genauen Bestimmung der Dateigröße wird außerdem os.path.getsize verwendet wird gegenüber os.stat().st_size bevorzugt. Letzteres kann aufgrund möglicher Optimierungen und Overheads irreführend sein.

„os.scandir“ hat sich in Python 3.4 und niedriger als effiziente Alternative zu „os.walk“ erwiesen. Und ab Python 3.5 wurde „os.walk“ verbessert, um der Leistung von „os.scandir“ zu entsprechen.

Für einen zeitgemäßeren Ansatz bietet „pathlib“ eine praktische Lösung:

<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>

Dieser Code nutzt die „Glob“-Funktion für eine rekursive Suche und nutzt „Pfad“-Objekte für eine verbesserte Dateiverwaltung.

Zusammenfassend bietet Python ein Arsenal an Funktionen, um Ihren Anforderungen an die Berechnung der Verzeichnisgröße gerecht zu werden. Wählen Sie den Ansatz, der Ihren Anforderungen am besten entspricht, um Ihre Dateisysteme effizient zu navigieren und zu verwalten.

Das obige ist der detaillierte Inhalt vonWie kann ich die Größe eines Verzeichnisses in Python berechnen?. 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