|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 stone1005 于 2018-9-7 21:26 编辑
编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图:
答题如下:
- import os
- all_files = os.listdir('C:\\')
- type_dict = dict()
- for each_file in all_files:
- (name, type1) = os.path.splitext(each_file)
- if type1 == '':
- type1 = '文件夹'
- if type1 not in type_dict:
- type_dict[type1] = 1
- else:
- type_dict[type1] += 1
- for each in type_dict:
- print('该文件夹下共有类型为【%s】的文件%d个' %(each, type_dict[each]))
复制代码
结果很成功,如下:
- 该文件夹下共有类型为【文件夹】的文件29个
- 该文件夹下共有类型为【.Bin】的文件1个
- 该文件夹下共有类型为【.emf】的文件1个
- 该文件夹下共有类型为【.BAK】的文件1个
- 该文件夹下共有类型为【.Msi】的文件1个
- 该文件夹下共有类型为【.dll】的文件2个
- 该文件夹下共有类型为【.cab】的文件1个
- 该文件夹下共有类型为【.cat】的文件2个
- 该文件夹下共有类型为【.VER】的文件1个
- 该文件夹下共有类型为【.log】的文件3个
- 该文件夹下共有类型为【.INF】的文件1个
- 该文件夹下共有类型为【.txt】的文件3个
- 该文件夹下共有类型为【.ini】的文件2个
- 该文件夹下共有类型为【.img】的文件3个
- 该文件夹下共有类型为【.sys】的文件1个
- 该文件夹下共有类型为【.exe】的文件2个
复制代码
后参考小甲鱼答案重新码了一遍代码如下:
- import os
- lines = os.listdir('C:\\')
- type_dict = dict()
- for line in lines:
- if os.path.isdir(line):
- type_dict.setdefault('文件夹', 0)
- type_dict['文件夹'] += 1
- else:
- ext = os.path.splitext(line)[1]
- type_dict.setdefault(ext, 0)
- type_dict[ext] += 1
- for each in type_dict.keys():
- print('该文件夹下共有类型为【%s】的文件%d个' %(each, type_dict[each]))
复制代码
执行后如下:
- 该文件夹下共有类型为【】的文件29个
- 该文件夹下共有类型为【.Bin】的文件1个
- 该文件夹下共有类型为【.emf】的文件1个
- 该文件夹下共有类型为【.BAK】的文件1个
- 该文件夹下共有类型为【.Msi】的文件1个
- 该文件夹下共有类型为【.dll】的文件2个
- 该文件夹下共有类型为【.cab】的文件1个
- 该文件夹下共有类型为【.cat】的文件2个
- 该文件夹下共有类型为【.VER】的文件1个
- 该文件夹下共有类型为【.log】的文件3个
- 该文件夹下共有类型为【.INF】的文件1个
- 该文件夹下共有类型为【.txt】的文件3个
- 该文件夹下共有类型为【.ini】的文件2个
- 该文件夹下共有类型为【.img】的文件3个
- 该文件夹下共有类型为【.sys】的文件1个
- 该文件夹下共有类型为【.exe】的文件2个
复制代码
天哪,文件夹竟然不能被统计出来,求大神解惑!!!
后边你得os.chdir()到那个目录
不然不识别
|
|