美文网首页
代码行数统计

代码行数统计

作者: 痞子_4ae7 | 来源:发表于2020-05-08 18:12 被阅读0次
# coding='utf-8'
"""
    task:代码行数统计器
            - 统计某个文件中的代码行数,忽略注释(大概分析)
            # 单行注释:包含'#'符号
            # 多行注释:考虑三引号
                    记录相邻三引号的索引,行数 = 后三引号索引 - 前三引号索引 + 1
    version:1.0
    author:ZXQ
    date:2020-05-08
"""
import os


def get_number_of_code_lines(src_file_name):
    single = 0
    multilines = 0
    blank = 0
    num = []

    # 打开文件
    with open(src_file_name, 'r', encoding='utf-8') as f:
        # 读取文件中所有内容,以列表形式返回
        lines = f.readlines()
        # 文件总行数
        count = len(lines)
        print('文件总行数:%s' % count)

        # 逐行读取文件内容
        for line_number in range(count):
            line_content = lines[line_number]
            # print('[%s]:%s' % (line_number + 1, line_content))
            # print(type(line))

            # 定义判断函数
            # 判断是否是单行注释
            if '#' in line_content:
                single += 1

            # 判断是否是多行注释
            if line_content.startswith('"""'):
                line_number = line_number + 1
                num.append(line_number)
                # print('三引号位置列表:%s' % num)
                three_number = len(num)
                # print('三引号个数:%s' % three_number)

            # 判断是否是空白行
            if line_content == '\n':
                blank += 1

        for m in range(three_number):
            if m % 2 == 0:
                multiline = num[m + 1] - num[m] + 1
                # print('部分多行注释行数:%s' % multiline)
                multilines += multiline

        print('单行注释行数:%s\n多行注释行数:%s\n空白行行数:%s' % (single, multilines, blank))

        number_of_code_lines = count - single - multilines - blank

        return number_of_code_lines


if __name__ == '__main__':
    src_file_name = 'test002-副本.py'
    if os.path.exists(src_file_name):
        if src_file_name.endswith('.py'):
            number = get_number_of_code_lines(src_file_name)
            print('有效代码行数:%s' % number)
        else:
            print('该文件不是python文件!')
    else:
        print('该文件不存在,请核实!')

相关文章

  • find 命令的妙用

    1.统计代码行数命令 统计 src 目录下所有 .js 文件的代码行数 wc 命令返回结果[行数] [词数] [字...

  • GIT统计代码量

    GIT统计代码量 Git统计个人提交代码行数 Git统计项目总行数 查看git上个人代码量(需要修改usernam...

  • 统计代码行数

    eg: 比如统计js文件的行数:find demo/ -name "*.js" |xargs cat|wc -l ...

  • 统计代码行数

    b[^:b#/]+.$ 需要做一个大致的统计代码行数,搜了一下代码统计工具,都比较麻烦,需要第三方的工具和一些配置...

  • 统计代码行数

    find . "(" -name ".m" -or -name ".mm" -or -name ".cpp" -o...

  • 统计代码行数

    find . -name ".m" -or -name ".h" | xargs grep -v "^$"| wc -l

  • 统计代码行数

  • 统计代码行数

    1、打开终端 2、cd 进入项目根目录 3、输入命令 find . "(" -name "*.m" -or -na...

  • 代码行数统计

    1、打开终端 2、cd 进入项目根目录 3、输入命令 find . "(" -name "*.m" -or -na...

  • 代码行数统计

    打开终端,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: 其中 -na...

网友评论

      本文标题:代码行数统计

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