美文网首页Python小哥哥
Python实战小项目 | 统计你的代码量

Python实战小项目 | 统计你的代码量

作者: 我爱学python | 来源:发表于2019-04-22 15:59 被阅读1次

    前面我们一直在介绍图形界面,这次换个口味,在命令行实现代码行数统计程序。本程序共 135 行,其中 18 行空行、110 行有效代码、7行注释,大小为 7.71 KB。

    主要思路

    通过 argparse 设置四个参数 -f, -p, -s, -r,其中 -f 表示单个 py 文件,-p 表示文件夹地址。-s  接排序的关键字,也就是根据哪个属性显示信息。默认情况下,信息按 total 关键字降序排序,我们可以通过加上 -r 参数来得到升序序列。

    对于单个 Py 文件,我们首先以只读方式读取文件,按行读取。每读取一行,total + 1。如果该行长度为 0,blank + 1。如果以‘#’开头,note + 1。否则的话,code + 1。其中,如果遇到单引号、双引号或者三引号,程序要单独计算这些注释的行数,主循环直接跳过相应次数的迭代。最后,通过 format 字符串打印字符。其中,代码要以英文命名,否则会显示混乱。

    解析参数

    我们使用标准库中的 argparse 来设置命令行参数。首先新建一个 parser 对象,并设置相应的提示信息。通过 group 对象添加的参数互斥,也就是说 -p -f 参数不能同时使用。parse_args() 用来获取对象参数。

    基本判断

    简单的判断,有三个分支。长度为 0,blank + 1;以‘#’开头,note + 1。如果既不是空行,也不是注释,那么代码的行数 + 1。

    注释判断

    对于以引号开头的行,我们就要小心了。

    我们需要 process_note 函数计算这些引号所占的行数。从引号开始的那一行计数,一直都引号结束的地方停止计数,最后返回注释的行数。

    与之配合的代码如下。对于引号所占的行,我们可以直接跳过,继续执行 for 循环。

    相关文章

      网友评论

        本文标题:Python实战小项目 | 统计你的代码量

        本文链接:https://www.haomeiwen.com/subject/sbtugqtx.html