使用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中文網其他相關文章!