# 李度软件技术基础第二次作业 **Repository Path**: idontknowmatlab/lidu ## Basic Information - **Project Name**: 李度软件技术基础第二次作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-02 - **Last Updated**: 2025-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 李度软件技术基础第二次作业 ### 文本计数统计程序 ### 项目简介 一个基于 Python 的命令行文本计数统计工具,能够对纯英文文本文件进行多种维度的统计分析。该项目支持基础文本统计(字符数、单词数、句子数)和扩展代码分析功能(代码行、空行、注释行等),适用于文档分析和代码质量检查等场景。 ### 版本说明 v0.1 - 空项目框架 版本状态:已完成 · 项目基础框架搭建 · 创建基础文件结构 · 初始化项目文档 v0.2 - 基础功能实现 版本状态:已完成 · 实现字符数统计功能 · 实现单词数统计功能 · 实现句子数统计功能 · 添加基础测试用例 v0.3 - 扩展功能实现 版本状态:已完成 · 新增代码行统计功能 · 新增空行统计功能 · 新增注释行统计功能 · 添加完整单元测试 · 增加性能测试模块 ### 命令行用法 基本语法 ```bash python wc.py [参数] [文件名] ``` ### 使用示例 ```bash # 基础功能示例 python wc.py -c sample.txt # 统计字符数 python wc.py -w sample.txt # 统计单词数 python wc.py -s sample.txt # 统计句子数 python wc.py -a sample.txt # 显示所有基础统计 # 扩展功能示例 python wc.py -cl test_code.py # 统计代码行数 python wc.py -el test_code.py # 统计空行数 python wc.py -ml test_code.py # 统计注释行数 ``` ### 参数说明 **基础统计参数** 参数 长参数 功能说明 适用文件类型 -c --chars 统计字符总数(含空格标点) 所有文本文件 -w --words 统计英文单词数量 所有文本文件 -s --sentences 统计句子数量 所有文本文件 -a --all 显示所有基础统计信息 所有文本文件 **扩展分析参数** 参数 长参数 功能说明 适用文件类型 -cl --codelines 统计非空代码行数 代码文件 -el --empty 统计空白行数量 代码文件 -ml --comments 统计注释行数量 代码文件 ### 文件列表说明 **项目根目录文件** ``` text_counter/ ├── wc.py # 主程序文件 ├── test_wc.py # 单元测试文件 ├── performance_test.py # 性能测试文件 ├── README.md # 项目说明文档 └── examples/ # 测试用例目录 ``` ### 详细文件说明 **核心程序文件** · wc.py:主程序入口,包含所有统计功能的实现 · test_wc.py:单元测试套件,验证各统计功能的正确性 · performance_test.py:性能测试模块,测试大数据量处理性能 **测试用例文件** · examples/sample.txt:普通文本测试文件,用于基础功能测试 · examples/test_code.py:Python代码测试文件,用于扩展功能测试 **文档文件** · README.md:项目详细说明文档(本文件) ### 测试运行及结果 **环境要求** · Python 3.6 或更高版本 · 无需额外依赖包 **测试步骤** 1. 基础功能测试 ```bash # 进入项目目录 cd v02基础功能 # 测试字符统计 python wc.py -c examples/sample.txt # 输出:字符数: 68 # 测试单词统计 python wc.py -w examples/sample.txt # 输出:单词数: 16 # 测试句子统计 python wc.py -s examples/sample.txt # 输出:句子数: 3 ``` 2. 扩展功能测试 ```bash # 进入项目目录 cd v03扩展功能 # 测试代码行统计 python wc.py -cl examples/test_code.py # 输出:代码行: 7 # 测试空行统计 python wc.py -el examples/test_code.py # 输出:空行数: 2 # 测试注释行统计 python wc.py -ml examples/test_code.py # 输出:注释行: 3 ``` 3. 单元测试 ```bash # 运行完整测试套件 python test_wc.py # 输出:所有测试通过! ``` 4. 性能测试 ```bash # 运行性能基准测试 python performance_test.py # 输出各大小文本的处理性能数据 ``` ### 测试结果验证 **基础功能验证结果** · 字符统计准确(包含空格和标点符号) · 单词识别正确(基于正则表达式匹配英文单词) · 句子分割准确(以 .!? 为句子分隔符) **扩展功能验证结果** · 代码行统计正确(排除空行) · 空行识别准确(仅包含空白字符的行) · 注释行检测正确(识别 # 开头的注释) **测试覆盖率** · 单元测试覆盖所有核心功能 · 包含边界情况测试(空文件、单字符文件等) · 性能测试覆盖不同规模数据 ### 技术特点 **核心算法** · 字符统计:直接计算字符串长度 · 单词识别:使用正则表达式 \b[a-zA-Z]+\b 匹配英文单词 · 句子分割:基于标点符号 . ! ? 进行智能分割 · 代码分析:行级分析,识别空行和注释行 **错误处理** · 文件不存在提示 · 文件读取异常处理 · 参数错误友好提示 · 编码问题自动处理 **性能优化** · 一次性读取文件内容,减少IO操作 · 使用高效的正则表达式匹配 · 内存友好的大文件处理 ### 开发日志 **版本迭代记录** ·v0.1:项目初始化,搭建基础框架 ·v0.2:实现核心统计功能,添加基础测试 ·v0.3:完成扩展功能,完善测试覆盖 **问题解决记录** · 修复文件路径处理问题 · 优化命令行参数解析 · 完善错误处理机制 · 增强代码健壮性 ### 适用场景 · 文档字数统计 · 代码质量分析 · 文本数据处理 · 学习Python项目开发 ### 注意事项 · 单词统计针对英文文本优化 · 代码分析功能主要针对Python文件