使用python对文件夹里面所有代码行数进行统计。
统计目录下所有的代码个数和总行数。
# -*- coding: utf-8 -*-
# @Author : ydf
import json
import os
from pathlib import Path
from collections import OrderedDict
from app.utils_ydf import LoggerMixin class CodeStatistics(LoggerMixin):
def __init__(self, root_dir: str = None, file_suffix_tuple=('.py',)):
self.root_dir = root_dir or Path(__file__).parent.parent
self._file_suffix_tuple = file_suffix_tuple
self.file_name__file_line_map = dict()
self._total_lines = 0 def _find_all_files(self):
"""
查到所有符合条件的文件
:return:
"""
for parent, dirnames, filenames in os.walk(self.root_dir):
for filename in filenames:
ext = filename.split('.')[-1]
if '.' + ext in self._file_suffix_tuple:
self.file_name__file_line_map[os.path.join(parent, filename)] = 0 def _conunt_file_line(self, file_name):
"""
计算一个文件的代码行数
:param file_name:
:return:
"""
for file_line in open(file_name, encoding='utf8').readlines():
if file_line != '' and file_line != '\n': # 过滤掉空行
self.file_name__file_line_map[file_name] += 1
self._total_lines += 1 def start_statistics(self):
self._find_all_files()
for file_name in self.file_name__file_line_map:
self._conunt_file_line(file_name)
self.logger.debug(json.dumps(self.file_name__file_line_map, indent=4))
ordered_dict = OrderedDict()
for k, v in sorted(self.file_name__file_line_map.items(), key=lambda itemx: itemx[1], reverse=True):
ordered_dict[k] = v
self.logger.info(json.dumps(ordered_dict, indent=4))
self.logger.info(f'文件夹{self.root_dir} 里面一共有 {len(self.file_name__file_line_map)} 个以 {self._file_suffix_tuple} 为后缀的代码文件,总行数是 {self._total_lines}')
return len(self.file_name__file_line_map), self._total_lines if __name__ == '__main__':
CodeStatistics().start_statistics()
使用python对文件夹里面所有代码行数进行统计。的更多相关文章
- 统计文件夹下java代码行数的小程序--主要是学习任务队列的思想
首先感谢czbk的老师,录制的视频,让我们有这么好的学习资料.……—— 统计文件夹java文件的行数,首先想到的肯定是用递归的方法,因为文件夹下面可能包含文件夹,用递归的方法,代码容易写.(这和写简单 ...
- Python将文件夹下的文件名写入excel方便统计
如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...
- linux下查看目录下某种文件类型累计的代码行数
find 路径 -name '*.py' | xargs wc -l
- [转] 一句shell命令搞定代码行数统计
今天面试时,突然被面试官问到怎样用shell命令搞定某个文件夹下java代码行数的统计. 想了一下,基本思路就是找到这个文件夹下面的所有java文件,然后每个文件统计一下代码,外层套个for循环,叠加 ...
- OC获取文件(夹)的代码行数
/* 考察NSString NSArray NSFileManager */ #import <Foundation/Foundation.h> /* 计算单个文件的代码行数 path:文 ...
- python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)
1.代码的运行结果: 获取 指定文件夹下.指定文件格式 文件的: 总代码行数.总注释行数(需指定注释格式).总空行数: #coding: utf-8 import os, re # 代码所在目录 FI ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
- ubuntu输入某个目录测试该目录里.C文件里代码行数shell脚本
#!/bin/bash echo "★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★☆ ★☆ ★☆★" echo "★☆ 统计代码行数 ☆★&qu ...
- python 关于文件夹的操作
在python中,文件夹的操作主要是利用os模块来实现的, 其中关于文件夹的方法为:os.lister() , os.path.join() , os.path.isdir() # path 表示文 ...
随机推荐
- dva+antd写的一个react例子
github地址 https://github.com/shenggen1987/dva-cli-demo 效果图片
- 探测web服务器质量——pycurl
pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议有FTP.HTTP.HTTPS.TELNET等,可以理解为Linux下curl命令功能的Python封装,简 ...
- Ubuntu安装SSH + Windows上配置Putty
1. Ubuntu安装SSH 命令: # sudo apt-get install openssh-server 2. 启动SSH Server 命令: # sudo /etc/init.d/ssh ...
- 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈
题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...
- 【leetcode刷题笔记】Single Number
题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...
- 前端绘图方式Canvas和SVG的区别
Canvas和SVG是html5中支持2种可视化技术,都是可以在画布上绘制图形和放入图片.下面来介绍和分析一下他们. 一.Canvas 和 SVG 简介 1.什么是Canvas? Canvas 是H5 ...
- Android 双u盘方案【转】
本文转载自:https://blog.csdn.net/kc58236582/article/details/49618445 1 L1813系统上双U盘设计方案——系统设计 1.1 ...
- Nginix安装教程(Ubuntu)
安装gcc g++的依赖库 #apt-get install build-essential #apt-get install libtool 安装 pcre依赖库 #sudo apt-get u ...
- zookeeper 配置文件注释
tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/shencl/zookeeper/data/data0 dataLogDir=/opt/shenc ...
- C#统计目录中文件MD5值
1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...