三级目录和计算目录下的文件的大小

三级目录,输入b返回上一层,输入q退出程序

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
 l = [menu]   # 将字典菜单添加到列表或者那个
 while l:
     for k in l[-1]:    # 每次都读列表的最后一个元素
         print(k)        # 输出最有一个元素的值
     key = input('>>>')
     if key.upper() == 'B':  # 如果输入的数字是b就返回上一层
         l.pop()        # 删除列表中最后一个元素
     elif key.upper() == 'Q':   # 退出
         l.clear()
     elif l[-1].get(key):    #  如果获取到的内容不是空
         l.append(l[-1][key]) # 就将选择的内容的键对应的值追加到列表中
View Code


# 计算文件夹大小的例子
# D:s20
# D:s20day16
# D:s20day16day16

import os
def get_size(path):
    size = 0   # 定义一个变量用来存储文件的大小
    l = [path]   # 将庐江添加到列表中
    while l:
        path = l.pop() # 删除列表中的最后一个元素,并接受返回值
        lst = os.listdir(path)    # 查看接受逇返回值的目录下的所有文件
        for name in lst:        # 遍历这个目录下的素有文件
            son_path = os.path.join(path,name)  # 路径拼接,将路径和文件名进行拼接
            if os.path.isfile(son_path):        # 如果这个文件不是目录,
                size += os.path.getsize(son_path) # 计算这个文件的大小
            else:
                l.append(son_path)            # 如果是目录,就将这个路径添加到列表中,用来进入这个目录中
    return size                # 返回这个目录中的文件的大小
    
size = get_size(r'D:s14算法')
print(size)
原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10601663.html