while 循环

查文件夹大小

import os
def get_size(path):
    # print(lst)
    size = 0
    l = [path]
    while l:
        path = l.pop()  #弄出一个并且 加到 path
        lst = os.listdir(path) # 列出 目录里的东西   #列出指定目录下的所有文件和子目录
        for name in lst :
            son_path = os.path.join(path,name)  # 拼接   #G:\作业\答案\day05homework
            print(son_path)
            if os.path.isfile(son_path):             #is  文件
                size += os.path.getsize(son_path)
            else:
                l.append(son_path)
                # for name in os.listdir(son_path):            # return Tru):
                #     print(name)
    return size
a = get_size(flie)
print(a)
#真正难的就是 字符串 循环  列表 不是 并发  网络 那些都是集成的
#老师 对算法感兴趣 亦乐意分享 棒
# 搞算法 和 学习别的没关系 一步一步
三级目录
china_ditie = {
    "北京": {
        "一号线": ["四惠", "大望路", "天安门", "西单"],
        "二号线": ["北京站", "朝阳门", "东直门", "西直门"],
        "三号线": ["国贸", "三元桥", "知春路", "巴沟"]
    },
    "上海": {
        "四号线": ["徐家汇", "人民广场", "延长路", "共康路", "呼兰路"],
        "五号线": ["东昌路", "静安寺", "江苏路", "虹桥火车站"],
        "六号线": ["宝山路", "赤峰路", "曹阳路", "虹桥路", "宜山路"]
    },
    "广州": {
        "七号线": ["东山口", "农讲所", "烈士陵园", "公园前", "体育西路"],
        "八号线": ["黄边", "纪念堂", "三元里", "白云公园"],
        "九号线": ["沙河顶", "北京路", "一德路", "文化公园"]
    },
    "深圳": {
        "一号线": ["高新园", "桃园", "白石洲", "华侨城"],
        "四号线": ["白石龙", "明乐", "少年宫", "红山"],
        "五号线": ["大学城", "兴东", "西里", "深圳北站"]
    },
}
l = [china_ditie]
while 1 :
    for i in l[-1]:
        print(i)
        # key = input('>>>')
        # if key not in l[-1]:
        #     l.append(key)
        l.append(l[-1]['三号线'])
for i in china_ditie:
    print(i)
key1 = input('>>>')
for i in china_ditie[key1]:
    print(i)
key2 = input('>>>')
for i in china_ditie[key1][key2]:
    print(i)
l = [china_ditie]   # 一个元素
while 1:
    for i in l[-1]:
        print(i)
    key = input('>>>').strip()
    if key.upper() == 'B':
        del l[-1]
    elif key.upper() == 'Q':
        l.clear()
    # elif type(l[-1]) == dict:  #改了这么久不会 ,就在这地方动小手脚 可以检测上一级啊
    elif type(l[-1]) == dict:    #判断 两次字典 最后一次列表不执行  判断的上一级 循环显示添加的是下一级
        l.append(l[-1][key])    #=l.append(l[-1].get(key))
menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
View Code
l = [menu]
while l:
    for k in l[-1]:
        print(k)
    key = input('>>>')
    if key.upper() == 'B':
        l.pop()
    elif key.upper() == 'Q':
        l.clear()
    elif l[-1].get(key):
        l.append(l[-1][key])

 

posted @ 2019-03-26 20:18  learnacode  阅读(185)  评论(0编辑  收藏  举报