鱼C论坛

 找回密码
 立即注册
查看: 1542|回复: 1

[已解决]第30课:文件系统。题目 0

[复制链接]
发表于 2021-1-25 11:08:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Peteryo01223 于 2021-1-25 13:27 编辑

原题:
0. 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图(本处从略,大家应可想象得出):

我抄的答案,及2个提问·:
  1. import os
  2. a = os.listdir('E:\\') # 使用os.curdir表示当前目录更标准
  3. t = dict()

  4. for each in a:
  5.     if os.path.isdir(each):
  6.         t.setdefault('文件夹', 0)
  7.         # setdefault() 方法使用指定的键返回项目的值。
  8.         # 如果键不存在,则插入这个具有指定值的键。
  9.         t['文件夹'] +=1

  10.     else:
  11.         ext = os.path.splitext(each)[1] # 问题1: 这里 [1]何意?ext并不是字典吧?()[]连用的情况,我没见过,请耐心帮我扫扫盲吧。
  12.         t.setdefault(ext, 0)
  13.         t[ext] += 1

  14. for each in t.keys():
  15.     print('该文件夹下有类型为【%s】的文件 %d 个' % (each, t[each]))
  16.     # 问题2: 最后一句这里,实际就是在分别打印dict t 里面 key 和 value吧?有没有直接利用 key 和 value 语句,直接打印的方法呢?如能利用key和value,会比较好记,以后我能想起来。
复制代码

问题:
如上code,问题一见第13行#注释中,问题二见第19行#注释中。
请教各位,谢谢~
最佳答案
2021-1-25 14:45:14
1,os.path.splitext(each)会返回一个列表,[1]是为了取出这个列表里面索引为1的值。
2,使用字典的items方法:
  1. >>> a = {"a": 1, "b": 2, "c": 3}
  2. >>> for key, values in a.items():
  3.         print(key,values)

  4.        
  5. a 1
  6. b 2
  7. c 3
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-25 14:45:14 | 显示全部楼层    本楼为最佳答案   
1,os.path.splitext(each)会返回一个列表,[1]是为了取出这个列表里面索引为1的值。
2,使用字典的items方法:
  1. >>> a = {"a": 1, "b": 2, "c": 3}
  2. >>> for key, values in a.items():
  3.         print(key,values)

  4.        
  5. a 1
  6. b 2
  7. c 3
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表