此功能用到了2个常用的Python标准库os和sys模块就解决。
可能是因为这段时间在做的一个Python项目,用的是一个公司内部的IDE环境,而这个IDE环境产生的py代码并不是以文本方式存储,都是放在二进制文件里面的。
由于这门语言外界几乎接触不到,所以没有针对它的代码统计程序。一个模块完成后要统计代码行数会很困难的,要统计的话只能手工来操作,这不符合我们程序员的一惯风格。
在这期间我一直在关注python语言,但是还没有动手真正的写python程序 。今天就利用中午休息的时间写了一个简单的代码统计程序。对输入路径作递归查找代码文件,对每一个代码文件计算注释行数、空行数、真正的代码行数。
统计代码行数Python代码如下:
代码如下 | 复制代码 |
#coding=utf-8 #iplaypython.py import sys; import os; class LineCount: # Open File myLineCount = LineCount(); |
我们看到代码中 extension == '.txt' or extension == '.hol'这句代码是用来判定文件的后缀名,可以确定是否要计算代码行数。
if eachLine.find('--') == 0 :是用来判定当前行是不是单行注释,为了能在其他机器上运行,使用了py2exe来把python脚本生成可执行的exe。
代码如下 | 复制代码 |
from distutils.core import setup import py2exe setup( |
利用Python统计源代码行数以及对源代码排版
近段时间写的一个软件需要做软件著作权登记,需要统计源代码行数以及提交部分源代码,刚好利用Python写了这么一个小工具。
用法如下:
在windows命令行窗口,使用python python_count_line.py source_code_root_directory即可。
其中,source_code_root_directory为需要统计的源代码的根目录,源代码目录中如果有其它子目录,也可以递归遍历。
源代码如下:
代码如下 | 复制代码 |
import os,sys
def count_line(filename): def read_lines_and_write_to_target(source_filename,target_file,begin_linenum): def count_files(root_dir,file_filter): process_list = list(flatten(process_list)) line_count = 0 def get_process_files(root_dir,file_filter): if __name__ == '__main__': |
统计某文件夹下源代码行数 Python脚本
写了一个统计某文件夹下各种源代码行数的脚本
仅支持c/c++ java python
有需要可以自己更改程序,我把这个脚本的拓展性做的很高
很容易使之支持其他文本型语言代码
或者给我Email我帮你做 onezeros@yahoo.cn
对于MFC自动生成的代码应该排除在外
可以用一种不太严密的方法:先统计各种mfc生成工程代码数量
然后在分析文件夹时根据mfc文件的一些特征判断目标文件夹是否为mfc工程
如果是,就减去生成的代码量
代码如下 | 复制代码 |
#!/usr/bin/python #codelines.py short for files in directory import sys import os import os.path class Element: #count lines in a file if __name__ == "__main__": |