键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数 注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,并用两种方式遍历map集合(iterator和entry) 例如: doc 的类型的文件有 3 个 java 的类型的文件有 5 个 txt 的类型的文件有 7 个 进一步思考: 如果要求 对目录下面所有的子目录也进行统计,如何实现?
时间: 2024-02-28 10:52:53 浏览: 27
以下是Python代码实现:
```python
import os
def count_files(path, result):
"""
统计指定路径下文件类型及个数
:param path: 指定路径
:param result: 存储结果的字典
"""
for root, dirs, files in os.walk(path):
for file in files:
# 获取文件类型
ext = os.path.splitext(file)[-1][1:]
if ext:
result[ext] = result.get(ext, 0) + 1
if __name__ == '__main__':
path = input("请输入文件夹路径:")
result = {}
count_files(path, result)
print("文件类型及个数:")
# iterator遍历
for key in result:
print(key + " 的类型的文件有 " + str(result[key]) + " 个")
# entry遍历
print("文件类型及个数:")
for item in result.items():
print(item[0] + " 的类型的文件有 " + str(item[1]) + " 个")
```
如果要对目录下面所有的子目录也进行统计,可以将count_files函数中的os.walk改为os.listdir,并在函数内部判断是否为目录,如果是目录则递归调用count_files函数即可。