统计python代码行数

发布时间:2019-08-13 07:40:02编辑:auto阅读(1612)

        addhosts项目已接近尾声,我很想知道我们写了多少行代码。

    一、需求

        统计源码目录下py文件的代码行数。

        16a2284fa7175bc6f107b02959024ff6.png


    二、脚本分析

        获取指定目录下所有的.py文件,对文件进行遍历;

        读取每个文件,对文件内容进行遍历,过滤掉空行和注释;


    三、实现及结果

    #coding:utf-8
    import os
    
    class StatLines(object):
    
        def __init__(self,path):
            self.path = path
    
        def stat_lines(self):
            file_list = os.listdir(self.path)
            os.chdir(self.path)
            total = 0
            for file in file_list:
                if file.endswith('.py'):
                    lines = open(file, encoding='utf-8').readlines()
                    count = 0
                    for line in lines:
                        if line == '\n':
                            continue
                        elif line.startswith('#'):
                            continue
                        else:
                            count += 1
                    total += count
                    print('%s has %d lines' %(file,count))
            print('total lines is: %d' %total)
    
    if __name__ == '__main__':
        sl = StatLines('E:\\Python_Project\\addhost_v2\\addhosts')
        sl.stat_lines()

    运行结果如下:

    cc2ac41637ba3f31728df8ad7e07162a.png


    四、总结

        问题:

        在执行open(file).readlines()时,遇到了如下错误

    “UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 548: illegal multibyte sequence”

        解决方法:

        在open时,设置encoding='utf-8'后,问题得到解决。

关键字

上一篇: python脚本

下一篇: python: mongodb应用示例