|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 屁哥 于 2018-3-10 00:06 编辑
Python 第30课 第0题 答案代码 求注释
Python 第30课 第0题 答案代码 求注释 图左为我自己写的 图右为课后题答案 运行结果 对应着
麻烦大神帮忙注释一下小甲鱼的课后题
题目 编写一个程序 统计当前目录下每个文件类型的文件数
- import os #
- all_files = os.listdir(os.curdir) # 用os.listdir 列举当前目录中的文件(os.curdir表示当前目录)
- type_dict = dict() # 创建一个元组 type_dict
- for each_file in all_files: #迭代获取 all_files 中的每个文件夹 并赋值给 each_file
- if os.path.isdir(each_file): # 如果 each_file 存在且是一个目录 执行以下内容
- type_dict.setdefault('文件夹', 0) # 向字典 type_dict 中添加 项("文件夹", 0)
- type_dict['文件夹'] += 1 # 如果 each_file 存在且是一个目录 字典 type_dict 中的 键(“文件夹”)+1
- else:
- ext = os.path.splitext(each_file)[1] # 用splitext 分离 迭代出来的 文件名与扩展名 没看懂把谁赋值给 ext 了 [1] 什么意思
- type_dict.setdefault(ext, 0) # 向字典 type_dict 中添加 项(ext, 0)
- type_dict[ext] += 1 # 如果 each_file 不存在且不是一个目录 字典 type_dict 中的 键(ext)+1
- for each_type in type_dict.keys(): # 迭代读取出 type_dict 中的键
- print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict[each_type])) # 打印字典中迭代出来的每一个键【%s】 和 数量 这里数量没看懂\
- # type_dict[each_type] 这是怎么统计出来数字的 变成整形 int 的 ?
- # 然后 这里 如果目录里有其他 类型文件 是怎么显示的 上面只有 ext 其他的怎么显示
复制代码
ext它只是一个变量,它可以被赋值成任何后缀名。
在上面的for循环迭代中,每一个迭代的元素就是每一个完整的文件名,
而os.path.splitext(each_file)就是把每一个完整的文件名 分成(文件名和后缀名),成为一个元组。
接下来就是将当前的这个元组中的后缀名赋值给ext。
ext = os.path.splitext(each_file)[1]
而
type_dict.setdefault(ext,0)你可以去字典那个章节回顾一下,它的定义就是我上面说的,你再理解下
|
-
|