【发布时间】:2022-12-18 06:40:17
【问题描述】:
我想要的结果是让我选择的路径中所有内容的大小从文件到根文件夹,并将其存储在 python 字典中,如下所示:
{
root:{
folder1:{
{file11:100,
file12:89,
file13:32},
size:221
},
folder2:{
subfolder21:{
{file21:45,
file22:80},
size:125
},
size:125
},
size:346,
}
}
像这样我知道 root/folder1 中的 file11 它的大小是 100,我还有 folder1 的总大小,它是其中所有内容的总和,221
我设法得到这本字典
{
root:{
folder1:{
{file11:100,
file12:89,
file13:32}
},
folder2:{
subfolder21:{
{file21:45,
file22:80}
}
}
}
}
但是我很努力地计算文件的总和并将值分配给每个文件夹,我的代码是:
def get_dir_content(ls_path):
for dir_path in os.listdir(ls_path):
if dir_path.isFile():
yield (dir_path.path, dir_path.size)
elif dir_path.isDir() and ls_path != dir_path.path:
yield from get_dir_content(dir_path.path)
x = list(get_dir_content("/path"))
d = {}
for i in x:
l = ''
for j in i[0].split('/'):
l = l+"['"+j+"']"
try:
exec('d'+l)
except:
exec('d'+l+'={}')
exec('d'+l+'='+str(i[1]))
提前致谢
【问题讨论】:
标签: python-3.x file dictionary directory