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

DDD
Freigeben: 2024-11-02 06:20:29
Original
266 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!