|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Peteryo01223 于 2021-1-25 13:27 编辑
原题:
0. 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图(本处从略,大家应可想象得出):
我抄的答案,及2个提问·:
- import os
- a = os.listdir('E:\\') # 使用os.curdir表示当前目录更标准
- t = dict()
- for each in a:
- if os.path.isdir(each):
- t.setdefault('文件夹', 0)
- # setdefault() 方法使用指定的键返回项目的值。
- # 如果键不存在,则插入这个具有指定值的键。
- t['文件夹'] +=1
- else:
- ext = os.path.splitext(each)[1] # 问题1: 这里 [1]何意?ext并不是字典吧?()[]连用的情况,我没见过,请耐心帮我扫扫盲吧。
- t.setdefault(ext, 0)
- t[ext] += 1
- for each in t.keys():
- print('该文件夹下有类型为【%s】的文件 %d 个' % (each, t[each]))
- # 问题2: 最后一句这里,实际就是在分别打印dict t 里面 key 和 value吧?有没有直接利用 key 和 value 语句,直接打印的方法呢?如能利用key和value,会比较好记,以后我能想起来。
复制代码
问题:
如上code,问题一见第13行#注释中,问题二见第19行#注释中。
请教各位,谢谢~
1,os.path.splitext(each)会返回一个列表,[1]是为了取出这个列表里面索引为1的值。
2,使用字典的items方法:
- >>> a = {"a": 1, "b": 2, "c": 3}
- >>> for key, values in a.items():
- print(key,values)
-
- a 1
- b 2
- c 3
复制代码
|
|