代码示例
注意
- 用户输入自己想要测试的代码数的文件夹绝对路径
- 用户定义过滤条件,默认为
['.py','.html','.css','js']
# os.walk()实现了获取文件夹的根目录、子目录以及文件名
import os
# 填写文件夹的绝对路径
dirpath = r'Z:\Python Code\DjangoStu\Django1.1\BBS\templates\backstage'
# 1、读取根目录
def all_files_path(rootDir):
file_list = []
for root, dirs, files in os.walk(rootDir): # 分别代表根目录、子目录、文件名
for file in files: # 遍历文件
file_path = os.path.join(root, file) # 获取文件绝对路径
file_list.append(file_path) # 将文件路径添加进列表
return file_list # 放回文件的绝对路径
# 2、过滤自定义赛选条件
def effctive_file(file_list):
eff_file_list = [] # 存储有效文件名
eff_list = ['.py','.html','.css','js'] # 定义自己赛选条件
for file in file_list:
if file.endswith(tuple(eff_list)): # 判断文件后缀是否符合定义要求
eff_file_list.append(file)
else:
pass
return eff_file_list
# 3、读取文件行数
def get_lines(filename_list):
total_number = 0 # 定义总行数
for f in filename_list:
with open(f,'r',encoding='utf-8') as f:
total_number += len(f.readlines()) # 累加行数
return total_number
if __name__ == "__main__":
file_list = all_files_path(dirpath)
eff_file_list = effctive_file(file_list)
total_number = get_lines(eff_file_list)
print(total_number)