三级目录和计算目录下的文件的大小
三级目录,输入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]) # 就将选择的内容的键对应的值追加到列表中
# 计算文件夹大小的例子
# D:\s20\
# D:\s20\day16
# D:\s20\day16\day16
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)