第30讲文件系统 课后作业第一题 答案求解
import osall_files = os.listdir(os.curdir) # 使用os.curdir表示当前目录更标准
type_dict = dict()
for each_file in all_files:
if os.path.isdir(each_file):
type_dict.setdefault('文件夹', 0) #这里不是每次遇上文件夹,那么type_dict[‘文件夹’:]的值都是变回0了吗?要怎么累加呢?
type_dict['文件夹'] += 1
else:
ext = os.path.splitext(each_file)
type_dict.setdefault(ext, 0)
type_dict += 1
for each_type in type_dict.keys():
print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict)
麻烦鱼油们 问题在上面的#那里学到这里就卡住了连作业思路都没有脑子生锈了 可以帮我解释下吗 给你一个帖子,昨天的。现在已经解决。你可以看看。
为什么统计文件夹数量时,不显示‘文件夹’类型呢 本帖最后由 jackz007 于 2020-1-3 11:41 编辑
type_dict . setdefault('文件夹', 0) # 这一句用于在字典中新添加一个成员,只有在字典 type_dict 中不存在 key 为 '文件夹' 的项时,此语句才会被执行,否则不会被执行 jackz007 发表于 2020-1-3 11:35
没错 但是每次执行type_dict[‘文件夹’:]的值都是变回0了 sunrise085 发表于 2020-1-3 10:57
给你一个帖子,昨天的。现在已经解决。你可以看看。
为什么统计文件夹数量时,不显示‘文件夹’类型呢
估计不是那个问题我问的问题和这个不同i 比他的简单一点 jackz007 发表于 2020-1-3 11:35
我估计你的是正确答案 我思考一下 sola_半月 发表于 2020-1-3 12:01
没错 但是每次执行type_dict[‘文件夹’:]的值都是变回0了
我想说的是,如果 '文件夹' 已经存在,type_dict[ '文件夹'] 的值不会因为这一句而有任何改变! jackz007 发表于 2020-1-3 12:10
我想说的是,如果 '文件夹' 已经存在,type_dict[ '文件夹'] 的值不会因为这一句而有任何改变!
那请问这句还执行吗 sola_半月 发表于 2020-1-3 12:15
那请问这句还执行吗
是有条件执行,在字典中不存在 key 为 '文件夹' 的项的时候。否则,你能解释数值累加效果吗? jackz007 发表于 2020-1-3 11:35
恍然大悟,赞
页:
[1]