目录下代码行数统计小工具(python)

先上效果图

效果图

代码

import os
from time import sleep

# 定义一个函数,用于打印输出目录下所有txt文件的内容
import chardet
line_all = 0

def print_txt_content(path,):
    global line_all
    # 获取指定路径下的所有文件和文件夹
    files = os.listdir(path)
    for file in files:
        # 完整路径
        file_path = os.path.join(path, file)
        # 判断是否是文件夹
        if os.path.isdir(file_path):
            # 递归调用自己,处理子目录
            print_txt_content(file_path)
        # 判断是否是txt文件
        elif os.path.isfile(file_path) and file_path.endswith('.java'):
            # 打开文件,读取并打印内容
            sleep(0.1)
            fs = open(file_path, 'rb')  # 先用二进制打开
            data = fs.read()  # 读取文件内容
            file_encoding = chardet.detect(data).get('encoding')  # 得到文件的编码格式
            fs.close()  # 关闭文件
            with open(file_path, 'r', encoding=file_encoding) as f:
                # content = f.read()
                # print(content)
                lines = f.readlines()
                # 使用strip()方法去掉每行开头和结尾处的空白字符,再使用filter()方法过滤掉空行
                non_empty_lines = filter(lambda x: x.strip(), lines)
                # 使用len()方法获取非空行数
                line_count = len(list(non_empty_lines))
                line_all+=line_count
                print(file_path[file_path.rindex("\\")+1:]+" 行数:"+str(line_count))
# 调用函数并传入要处理的目录路径
path = './aa'
print_txt_content(path)
print("总行数:"+str(line_all))

代码核心部分来自ChatGPT。
注释所在的行数也统计入内,但不统计空行。

使用方法

在这里插入图片描述
新建一个py文件,把上述代码粘贴进去。同目录下新建一个文件夹命名为aa。把需要统计行数的源代码文件放进aa文件夹里。

目前默认统计的是Java文件,如需要改为其他后缀名的文件,需要把第20行的“java”替换为其他后缀名。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值