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