这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zjlg/rjjc/ |
---|---|
这个作业的目标 | 实现一个命令行文本计数统计程序,能正确统计导入的txt文本中的字符数,单词数等数据 |
姓名-学号 | 钱嘉铭 2022330361017 |
说明:
由于博客园与gitee呈现的排版效果不一样,这边先展示README.MD,码云地址附在最后。
一、功能介绍
①基本功能:实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的字符数,单词数,句子数。
②拓展功能:统计代码行、空行、注释行等,并提供相应命令接口。
③单元测试和性能测试
二、详细使用方法
1.右击 开始 图标,在搜索栏中输入cmd
2.下载PyInstaller并将Python脚本打包成exe可执行文件
输入以下代码安装
pip install pyinstaller
之后输入以下代码将v0.2的Python脚本打包("D:\python代码\v0.2.py"里的是我保存的Python文件的位置)
pyinstaller --onefile "D:\python代码\v0.2.py"
输入以下代码将v0.3的Python脚本打包
pyinstaller --onefile "D:\python代码\v0.3.py"
成功后,可以在C盘的dist文件夹中找到生成的exe文件
之后,我将生成的exe文件都转移到D盘名为python代码文件夹
3.在命令行根目录切换至目标目录
重新在开始图标在搜索栏输入cmd打开,由于我的文件下载在D盘,需要切换至D盘,下面是要用到的命令
cd /
D:
cd D:python代码
3.使用命令
基本功能命令模式:
v0.2.exe -<指令> <file>
指令表
命令 | 描述 |
---|---|
v0.2.exe -c <file> |
计算并显示指定文件的字符数 📋 |
v0.2.exe -w <file> |
计算并显示指定文件的单词数 📝 |
v0.2.exe -s <file> |
计算并显示指定文件的句子数 💬 |
拓展功能命令模式:
v0.3.exe -<指令> <file>
指令表
命令 | 描述 |
---|---|
v0.3.exe -d <file> |
计算并显示代码行数 📜 |
v0.3.exe -e <file> |
计算并显示空行数 ⬜ |
v0.3.exe -n <file> |
计算并显示注释行数 🗒️ |
三、基本功能运行结果
文本内容:
案例1:
v0.2.exe -c "Qian Xuesen introduction.txt"
(由于文件名中有空格,需要在文件名外加" ")
结果如下:
案例2:
v0.2.exe -w "Qian Xuesen introduction.txt"
结果如下:
案例3:
v0.2.exe -s "Qian Xuesen introduction.txt"
结果如下:
四、拓展功能运行结果
代码内容:
案例1:
v0.3.exe -d "测试材料.py"
结果如下:
案例2:
v0.3.exe -e "测试材料.py"
结果如下:
案例3:
v0.3.exe -n "测试材料.py"
结果如下:
五、单元测试
1.基本测试
文件test_v02.py和test_v03.py是我专门写的单元测试文件,下面是它对单元测试的简单材料进行单元测试
v02测试内容:
v02 结果如下:
v03测试内容:
v03 结果如下:
2.异常捕捉
v0.2异常捕捉:v0.2代码中输入不存在的文件名将显示错误: 文件不存在
输入不存在的文件名(abcde)
结果如下:
v0.3异常捕捉:v0.3代码中输入不存在的文件名将显示文件不存在
输入不存在的文件名(abcde)
结果如下:
3.输错指令显示正确指令用法
v0.2中输入时错误指令v0.2.exe -f <file>
结果如下:
v0.3中输入时错误指令v0.3.exe -z <file>
结果如下:
六、性能测试
由于我下载的pycharm与python版本好像有点不兼容,需要imp模块在python新版本已被弃用,不能使用IDE附带的工具进行performance test,因此在pycharm中使用了 Python 的cProfile模块进行性能测试分析
结果如下:
七、作业感悟
这虽然是一次小的编程作业,但也花费了我比较多的时间,在校运动会以及周末的这几天时间,我花费了许多时间去查阅资料,也遇到了许多编程出现的问题。当遇到问题以后,我可能会一直卡在那边,然后想了很久也不能想到解决的方法。之后通过查阅Gitee以及CSDN上的一些开源的资料,我找到一些比较有用的信息,他们的经验给了我很多的指引,然后让我能顺利地解决问题,非常感谢那些他们那种开源的精神。当我解决了这个问题之后,我还是会有一种比较激动的成就感,以及一种解决问题后的喜悦和轻松。希望我以后科研碰到问题也能坚持下去,增强自己的韧性。