|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import os #引入os模块
- all_files = os.listdir(os.curdir) #os.listdir列举指定目录中的文件名 os.curdir表示当前目录
- type_dict = dict() #创建一个字典
- for each_file in all_files: #遍历所有文件
- if os.path.isdir(each_file): #如果文件存在于同一个目录路径?
- type_dict.setdefault('文件夹', 0) #setdefault在字典中找不到对应的key会自行添加,'文件夹'是key,0对应value
- type_dict['文件夹'] += 1 #'文件夹'表示文件类型
- else:
- ext = os.path.splitext(each_file)[1] #splitext分离文件名和扩展名
- type_dict.setdefault(ext, 0)
- type_dict[ext] += 1
- for each_type in type_dict.keys():
- print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict[each_type]))
复制代码
请问:1.这题的整体思路应该是怎样?我想的是利用字典的key和value对应文件类型和个数
2.代码中else后的部分是什么意思?特别是os.path.splitext(each_file)[1] 最后这个[1]是什么,为什么需要?
3.#后的注释自己理解写上去的,请高手指教
虚心求教脸
1.思路就是你说的那样
2.这句 if os.path.isdir(each_file): 是判断each_file是否是文件夹,如果是就在字典里加一个 '文件夹'是key,0对应value 。如果不是 就是else后面的语句了,不是文件夹就是一个文件了 然后分离文件名和文件后缀 这个[1]就是要取文件的后缀名
|
|