统计python代码行数

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

一、需求

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

二、脚本分析

获取指定目录下所有的.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()

运行结果如下:

四、总结

问题:

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

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

解决方法:

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

时间: 2024-10-09 15:02:23

统计python代码行数的相关文章

iOS开发 统计xcode代码行数

如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or

一个统计自己代码行数的脚本

最近心血来潮,想看看自己平时写的乱七八糟的代码都有多少行了,就写了这个脚本.因为我的代码都写在了一个总目录里面,所以统计起来还算比较方便. 统计脚本是用shell写的,支持4个参数,-[qQhd],其中 h :为帮助参数,显示如下的帮助信息 $ cntline.sh -h Usage : cntline.sh -[qQhd] -q : not show dir -Q : not show file name -h : show this help message -d : only show d

Visual Studio使用正则表达式快速统计总共代码行数

按CTRL+SHIFT+F,勾上支持正则表达式,然后输入搜索内容: [csharp] view plaincopyprint? <span style="font-family:Microsoft YaHei;font-size:18px;">^:b*[^:b#/]+.*$</span>   说明:#开头和/开头或者空行都不计入代码量.如果需要只统计代码文件的代码量,可以选择查找文件的类型,比如什么*.xml, *.resx….可以不检查,只查*.cs,*.c,

Visual Studio统计有效代码行数

在网上看到别人用的方法: 按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 以上表达式的统计可做到:#开头和/开头或者空行都不计入代码量.如果需要只统计代码文件的代码量,可以选择查找文件的类型,比如什么*.xml, *.resx….可以不检查,只查*.cs,*.c,*.h… 搜索出来以后最后一行就是代码行数了. 自己实践了一下,挺好用的.如图所示: 得到结果:

IOS开发 统计XCODE 代码行数

如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or

iOS 统计项目代码行数

最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目代码量,于是我大概表达了一下 "我的确没从代码量考虑过项目,请教一下你们如何去统计的 如果统计项目代码量,用来干什么呢 " 然后对方回答的话我比较意外"用看的...就是看..." 大概是几个字略过去了 没有对我的疑问有任何价值性质的回应. 基于钻研精神,我后来还是问了我

统计xcode代码行数

如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or

[Tips]统计Xcode代码行数

如果要统计Xcode文件代码行数,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib"

统计脚本代码行数

#!/bin/bash #统计当前文件夹(包括子文件夹)下.sh脚本有效代码行数,不包括注释,和空行 #所有行 MY_LIST_VAR=`egrep -c -h -R --include="*.sh" ^.*$` #echo $MY_VAR MY_ALL_COUNT=0 #所有空行 MY_LIST_SPACE_VAR=`egrep -c -h -R ^$ --include="*.sh"` #echo $MY_LIST_SPACE_VAR MY_ALL_SPACE_