gpt4 book ai didi

python - 在目录树中查找最大的文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:09 24 4
gpt4 key购买 nike

我正在尝试创建一个遍历目录树的函数,以查找并打印最大的文件夹。

我编写了以下有效的代码,但想知道是否有更有效的方法?

import os

def biggestFolder(directory):
folderSize = []
for folders, subfolders, filenames in os.walk(directory):
folderSize.append(os.path.getsize(folders))
maxFolder = max(folderSize)
if os.path.getsize(folders) == maxFolder:
return folders



print(biggestFolder('/Users/ryanunderwood/Documents'))

最佳答案

如果您正在寻找最大尺寸的文件夹,我不明白您为什么需要 os.walk,即在整个目录中耗尽递归搜索。您的父文件夹显然会比里面的文件夹大。此外,os.path.getsize 不能用于文件夹,即这不是递归计算大小,而是仅返回文件夹的大小(更多信息 here)。

为简洁起见,您可以使用pathlib.Path 标准库。

from pathlib import Path
import operator

root = "/path/to/root/dir/"
p = Path(root)
folder_size_dict = {}

# Iterate through all folders
for subdir in p.iterdir():
# Calculate recursively the size for each subdir
subdir_size = sum(f.stat().st_size for f in subdir.glob('**/*') if f.is_file())
folder_size_dict[subdir] = subdir_size

# Get folder (key) with largest size (value)
largest_folder = max(folder_size_dict.items(), key=operator.itemgetter(1))[0]
print(f"Largest folder: {largest_folder} with size {folder_size_dict[largest_folder]}"

希望这对您有所帮助。

关于python - 在目录树中查找最大的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58855112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com