Python でディレクトリのサイズを計算するにはどうすればよいですか?

DDD
リリース: 2024-11-02 06:20:29
オリジナル
268 人が閲覧しました

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

Python を使用したディレクトリ サイズの計算: 総合ガイド

広範なファイル システムをナビゲートする場合、ディレクトリのサイズを決定することが非常に重要になります。 Python は、この機能を包含するさまざまなモジュールを提供します。

次の Python コード スニペットを考えてみましょう:

<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>
ログイン後にコピー

このソリューションは、サブディレクトリを再帰的に走査し、ファイル サイズを蓄積することにより、包括的なアプローチを提供します。シンボリック リンクを回避して、正確なサイズ計算を保証します。フォーマットされたサイズ (例: Mb/Gb) は直接組み込まれませんが、後続のステップとして簡単に追加できます。

さらに、サブディレクトリに降下せずにルート ディレクトリのサイズのみを計算するには、次のような合理的なアプローチを使用します。 os.listdir が利用可能です:

<code class="python">import os

sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>
ログイン後にコピー

このコード スニペットは、サブディレクトリを除いた現在のディレクトリ内のファイル サイズをコンパクトに合計します。

さらに、正確なファイル サイズを決定するには、os.path.getsize os.stat().st_size よりも優先されます。後者は、潜在的な最適化とオーバーヘッドにより誤解を招く可能性があります。

「os.scandir」は、Python 3.4 以下では「os.walk」の効率的な代替手段であることが証明されています。また、Python 3.5 以降では、「os.walk」が「os.scandir」のパフォーマンスに合わせて強化されました。

より現代的なアプローチとして、「pathlib」が便利なソリューションを提供します。

<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>
ログイン後にコピー

このコードは、再帰的検索に「glob」関数を利用し、強化されたファイル処理のために「Path」オブジェクトを利用します。

要約すると、Python はディレクトリ サイズ計算のニーズに応えるための関数を提供します。ファイル システムを効率的に移動および管理するには、要件に最も適したアプローチを選択してください。

以上がPython でディレクトリのサイズを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!