Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Saiz Direktori dalam Python?

Bagaimana untuk Mengira Saiz Direktori dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 03:46:01463semak imbas

How to Calculate Directory Size in Python?

Mengira Saiz Direktori dengan Python

Mengira saiz direktori dalam Python boleh menjadi tugas yang berguna untuk mengurus ruang storan atau menganalisis data. Mari kita terokai cara mengira saiz ini dengan cekap.

Jumlah Saiz Fail Menggunakan os.walk

Satu pendekatan melibatkan merentasi direktori dan subdirektorinya, menjumlahkan saiz fail. Ini boleh dilaksanakan menggunakan fungsi os.walk:

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

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

Fungsi ini mengira saiz direktori secara rekursif, memberikan jumlah saiz dalam bait.

Satu pelapik Menggunakan os. listdir

Untuk pengiraan pantas saiz direktori tanpa mengambil kira subdirektori, anda boleh menggunakan satu baris:

<code class="python">import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))</code>

Ungkapan ini menggunakan os.listdir untuk menyenaraikan semua fail dalam direktori semasa, dan os.path.getsize untuk menentukan saiznya.

Menggunakan os.stat dan os.scandir

Sebagai alternatif, anda boleh menggunakan os.stat atau os.scandir untuk mengira saiz fail. os.stat menyediakan maklumat fail tambahan, termasuk saiz:

<code class="python">import os

nbytes = sum(d.stat().st_size for d in os.scandir('.') if d.is_file())</code>

os.scandir menawarkan prestasi yang lebih baik dalam Python 3.5 dan menawarkan cara yang lebih cekap untuk lelaran melalui direktori.

Pathlib Penyelesaian

Jika anda menggunakan Python 3.4 , perpustakaan pathlib menawarkan cara yang mudah untuk mengendalikan operasi direktori:

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

Penyelesaian pathlib ini menggabungkan pendekatan sebelumnya untuk ringkas dan pengiraan yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Saiz Direktori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn