Pythonでディレクトリのサイズを効率的に計算する方法

Pythonによるディレクトリサイズの計算方法について詳しく解説します。この記事では、ディレクトリのサイズを計算するためのPythonコードを紹介し、そのコードの詳細な解説を行います。さらに、この基本的なコードを応用した3つ以上の具体例もご紹介します。

目次

はじめに

ディレクトリのサイズを計算することは、ディスク容量の管理やデータの整理において重要な作業です。Pythonを使えば、このような作業を効率的に、かつプログラム的に実行できます。

基本的なコード

まずは、ディレクトリのサイズを計算する基本的なPythonコードを見てみましょう。

import os

def get_directory_size(directory):
    total = 0
    # ディレクトリ内の各ファイルについて処理
    for dirpath, dirnames, filenames in os.walk(directory):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            # ファイルサイズを加算
            total += os.path.getsize(fp)
    return total

コードの解説

このコードでは`os.walk()`関数を使ってディレクトリ内のすべてのファイルとサブディレクトリを走査しています。`os.path.getsize()`関数を使って各ファイルのサイズを取得し、それを`total`に加算しています。

応用例

基本的なコードを応用したいくつかの例を紹介します。

応用例1: ディレクトリごとのサイズを表示

import os

def get_size_per_directory(directory):
    sizes = {}
    for dirpath, dirnames, filenames in os.walk(directory):
        total = 0
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total += os.path.getsize(fp)
        sizes[dirpath] = total
    return sizes

応用例2: サイズが一定以上のファイルを特定

import os

def find_large_files(directory, size_limit):
    large_files = []
    for dirpath, dirnames, filenames in os.walk(directory):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            if os.path.getsize(fp) >= size_limit:
                large_files.append(fp)
    return large_files

応用例3: ファイルタイプごとのサイズ計算

import os

def size_by_file_type(directory):
    extension_sizes = {}
    for dirpath, dirnames, filenames in os.walk(directory):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            ext = os.path.splitext(f)[1]
            size = os.path.getsize(fp)
            extension_sizes.setdefault(ext, 0)
            extension_sizes[ext] += size
    return extension_sizes

まとめ

この記事では、Pythonでディレクトリのサイズを計算する方法を詳しく解説しました。基本的なコードから、より応用的な使用例までを紹介しました。これを機に、Pythonを使って効率的なディスク管理を行ってみてはいかがでしょうか。

コメント

コメントする

目次