工具简介:简易的代码行统计工具实现,只需指定项目所用的编程语言的后缀名列表与项目根目录,即可轻松完成项目下所有源文件的代码行数以及总代码行数的统计。
工具源代码:
# stat_code_lines.py
from glob import glob
import pandas as pd
import os
import numpy as np
# 设置项目根目录
project_root = "./project"
# 设置项目所用的编程语言后缀名列表
source_file_suffix_list = [".py", ".cpp", ".h"]
source_file_path_list = []
code_lines_list = []
for root, _, _ in os.walk(project_root):
for suffix in source_file_suffix_list:
for source_file_path in glob(root + "/*" + suffix):
source_file_path_list.append(source_file_path)
with open(source_file_path, "r", encoding="utf-8") as fr:
code_content = fr.readlines()
code_lines_list.append(len(code_content))
source_file_path_list.append("总计")
code_lines_list.append(np.sum(code_lines_list))
source_file_with_code_lines = pd.DataFrame({"源文件":source_file_path_list,
"代码行数":code_lines_list})
print(source_file_with_code_lines)
工具使用方法:
# 设置项目根目录
project_root = "./project"
# 设置项目所用的编程语言后缀名列表
source_file_suffix_list = [".py", ".cpp", ".h"]
# 执行脚本
python stat_code_lines.py
代码统计输出样例:
源文件 代码行数
0 evaluation.py 1317
1 joint.cpp 230
2 joint.h 201
3 sort_cut.py 224
4 module.py 407
5 vis_pairs.py 503
6 zk.py 2
7 总计 2884