说明:个人练手python用。
操作系统:window10 x64
IDE:Pycharm 2017.2.2
Python版本:3.6.2
思路
1、递归获取指定路径下的全部指定后缀的文件
2、读取每个指定后缀文件中有效代码的行数
3、统计并展示
完整代码如下:
import os
# 定义外部变量,做全局记录用
code_lines = 0
# 定义函数
def get_lines_by_suffix(path, suffix):
# 设置code_lines为全局变量
global code_lines
# 列出path下的文件和文件夹,不包括子文件和子文件夹
file_list = os.listdir(path)
# 遍历列出的文件及文件夹,如果是文件夹,递归查找,如果是文件,则统计代码行数
for filename in file_list:
# path和filename,共同组成查询出的某个文件或文件夹完整路径
file_path = os.path.join(path, filename)
# 如果是文件夹
if os.path.isdir(file_path):
# 递归查找
get_lines_by_suffix(file_path, suffix)
else: # 是文件
# 判断后缀
if file_path.split(".")[-1] == suffix:
# 统计代码行数
code_lines += get_lines(file_path)
# 打印查看
print(code_lines)
# 递归查找完毕,返回全部代码条数
return code_lines
# 定义函数,用于计算单个文件中的代码的函数
def get_lines(file):
# 打开(连接)文件
with open(file, encoding="utf-8") as f:
# 获取读取到的行数,也即文件中代码的行数
return len(f.readlines())
# 测试验证
code_lines = get_lines_by_suffix("C:\\Users\\cloud\\Desktop\\poi_word_demo\\poi_word", "java")
print(code_lines)