Python用正则匹配来统计已写源码行数的示例(Crossin教室实例27)
2024-01-07 19:09:39
一、问题描述:
码农经常会被问到,一共写过多少行代码?现在,给定一个包含py 文件的目录,统计该目录中所有源码文件的总行数,并分别列出注释行、空行与有效代码的行数。请注意,为了简化问题,我们暂不考虑多行注释,有兴趣的同学可以自己尝试思考多行注释下的代码统计。
二、示例代码:
import os
import re
program_dir = r'.' # 设定统计源码所在的目录(.表示当前目录)
blank_lines = 0 # 初始化统计变量
remark_lines = 0
affect_lines = 0
total_lines = 0
count_files = 0
for root, dirs, files in os.walk(program_dir):
for every_file in files:
file_root = os.path.join(root, every_file)
open_file = open(file_root, 'r')
try:
file_content = open_file.readlines() # 按照行读取文件
except:
file_content = []
open_file.close()
print('正在统计:'+str(count_files), file_root)
count_files += 1
for line in file_content:
first_char = re.search(r'(?<=\s)*\S', line) # 匹配每行第一个非空字符
if not first_char: # 判断并统计
blank_lines += 1
elif first_char.group() == '#':
remark_lines += 1
else:
affect_lines += 1
total_lines += 1
print('有效行:', affect_lines)
print('注释行:', remark_lines)
print('空白行:', blank_lines)
print('总行数:', total_lines)
三、运行结果展示:
文章来源:https://blog.csdn.net/m0_64880493/article/details/135436361
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!