如何在Python中計算目錄大小?

Patricia Arquette
發布: 2024-11-04 03:46:01
原創
391 人瀏覽過

How to Calculate Directory Size in Python?

使用Python 計算目錄大小

在Python 中計算目錄的大小對於管理儲存空間或分析資料來說是一項有用的分析資料任務。讓我們探索如何有效地計算此大小。

使用 os.walk 求和檔案大小

一種方法涉及遍歷目錄及其子目錄,對檔案大小求和。這可以使用 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>
登入後複製

此函數遞歸計算目錄大小,提供以位元組為單位的總大小。

單行使用os. listdir

要快速計算目錄大小而不考慮子目錄,可以使用單行程式碼:

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

此表達式使用os.listdir 列出目錄中的所有檔案目前目錄,並使用os.path.getsize 確定其大小。

使用 os.stat 和 os.scandir

或者,您可以使用 os.stat 或os.scandir 來計算檔案大小。 os.stat 提供額外的文件信息,包括大小:

<code class="python">import os

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

os.scandir 在 Python 3.5 中提供了改進的性能,並提供了更有效的方法來迭代目錄。

Pathlib解決方案

如果您使用的是Python 3.4 ,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>
登入後複製

這個pathlib 解決方案結合了前面的方法,以實現簡潔和高效計算。

以上是如何在Python中計算目錄大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!