项目35:简易文件类型统计器 — 《跟着小王学Python·新手》
《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络爬虫、制作桌面软件等多样化项目,学习者可以深入理解并实践Python知识。每周更新1至2篇内容,旨在助力学习者成长为全栈工程师。
作为课程作业或者毕设参考也是不错的选择
文章目录
- 项目35:简易文件类型统计器 --- 《跟着小王学Python·新手》
- 目标
- 功能
- 设计
- 1. 目录结构
- 2. 技术选型
- 3. 流程设计
- 实现步骤
- 1. 创建文件
- 2. 编写代码
- 3. 测试
- 代码实现
- 测试
- 注意事项
- 小结
目标
本项目旨在为Python新手提供一个简易的文件类型统计器,通过这个项目,新手可以学习到文件操作、循环、条件判断等基础编程知识。同时,通过实践,加深对Python语言的理解,并能够将所学知识应用到实际问题中。
功能
- 扫描指定目录下的所有文件。
- 统计不同文件类型的个数。
- 输出统计结果,显示每种文件类型及其对应的数量。
设计
1. 目录结构
为了使代码更加模块化,我们将代码分为以下几个部分:
-
main.py
:主程序入口,负责调用其他模块。 -
file_scanner.py
:负责扫描目录并获取文件列表。 -
file_counter.py
:负责统计文件类型并存储结果。 -
output.py
:负责输出统计结果。
2. 技术选型
- Python 3.x:作为主要开发语言。
- os模块:用于目录和文件操作。
- collections模块:用于数据统计。
3. 流程设计
- 使用
os
模块扫描指定目录。 - 将文件列表传递给
file_counter
模块进行统计。 - 将统计结果存储在字典中。
- 使用
output
模块输出统计结果。
实现步骤
1. 创建文件
创建上述提到的四个文件:main.py
、file_scanner.py
、file_counter.py
、output.py
。
2. 编写代码
在file_scanner.py
中编写文件扫描逻辑,在file_counter.py
中编写统计逻辑,在output.py
中编写输出逻辑。
3. 测试
在main.py
中调用其他模块,并在本地环境中测试程序的正确性。
代码实现
# file_scanner.py
import osdef scan_files(directory):"""扫描指定目录下的所有文件,并返回文件列表。"""files = []for root, dirs, filenames in os.walk(directory):for filename in filenames:files.append(os.path.join(root, filename))return files
# file_counter.py
from collections import defaultdictdef count_files(files):"""统计文件类型并返回统计结果。"""file_types = defaultdict(int)for file in files:file_type = file.split('.')[-1] # 获取文件扩展名file_types[file_type] += 1return file_types
# output.py
def print_results(results):"""输出统计结果。"""for file_type, count in results.items():print(f"{file_type}: {count}")
# main.py
from file_scanner import scan_files
from file_counter import count_files
from output import print_resultsdef main():directory = input("请输入要扫描的目录路径:")files = scan_files(directory) # 扫描文件results = count_files(files) # 统计文件类型print_results(results) # 输出结果if __name__ == "__main__":main()
测试
在命令行中运行main.py
,并输入要扫描的目录路径,程序将输出该目录下不同文件类型的统计结果。
注意事项
- 确保输入的目录路径是正确的,否则程序将无法正常工作。
- 本程序不支持隐藏文件和目录。
- 对于没有扩展名的文件,程序将其视为无类型文件。
小结
通过本项目,新手可以学习到Python中文件操作的基本方法,以及如何使用循环和条件判断来处理实际问题。同时,通过实践,新手可以加深对Python语言的理解,并提高编程能力。