„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie berechnet man die Verzeichnisgröße in Python effizient?

Wie berechnet man die Verzeichnisgröße in Python effizient?

Veröffentlicht am 09.11.2024
Durchsuche:705

How to Efficiently Calculate Directory Size in Python?

Steuerung der Verzeichnisgrößenberechnung mit Python

Um die Speicherplatzbelegung eines Verzeichnisses zu messen, bietet Python mehrere Ansätze. Im Folgenden befassen wir uns mit einer effizienten und umfassenden Lösung:

import os

def directory_size(start_path):
    total_size = 0

    for root, directories, files in os.walk(start_path):
        for file in files:
            file_path = os.path.join(root, file)
            if not os.path.islink(file_path):
                total_size  = os.path.getsize(file_path)

    return total_size

Vorteile dieser Lösung:

  • Durchläuft rekursiv alle Unterverzeichnisse und gewährleistet eine umfassende Größenberechnung.
  • Schließt symbolische Links aus, die auf Dateien außerhalb des Verzeichnisses verweisen können .
  • Berechnet die Größe in Bytes, der Grundeinheit des Speichers.

Zusätzliche Überlegungen:

  • Um die Größe in Megabyte (MB) oder Gigabyte zu formatieren (GB), verwenden Sie „round(total_size / 1024 ** 2, 2)“ für MB oder „round(total_size / 1024 ** 3, 2)“ für GB.
  • Um versteckte Dateien auszuschließen, fügen Sie if file[0] hinzu. != '.' vor total_size = os.path.getsize(file_path) innerhalb der Schleife.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3