python实现的代码行数统计代码

'''

Author: liupengfei

Function: count lines of code in a folder iteratively

Shell-format: cmd [dir]

Attention: default file encode is utf8 and default file type is java-source-file. But users can customize this script by just modifing global variables.

'''

import sys

import os

import codecs

from _pyio import open

totalCount = 0;

fileType = '.java'

descLineBegin = '//'

descBlockBegin = r'/**'

descBlockEnd = r'*/'

fileEncode = 'utf-8'

def main():

DIR = os.getcwd()

if len(sys.argv) >= 2:

DIR = sys.argv[1]

if os.path.exists(DIR) and os.path.isdir(DIR):

print('target directory is %s' % DIR)

countDir(DIR)

print('total code line is %d' % totalCount)

else:

print('target should be a directory!')

def isFileType(file):

return len(fileType) + file.find(fileType) == len(file)

def countDir(DIR):

for file in os.listdir(DIR):

absPath = DIR + os.path.sep + file;

if os.path.exists(absPath):

if os.path.isdir(absPath):

countDir(absPath)

elif isFileType(absPath):

try:

countFile(absPath)

except UnicodeDecodeError:

print(

'''encode of %s is different, which

is not supported in this version!'''

)

def countFile(file):

global totalCount

localCount = 0

isInBlockNow = False

f = codecs.open(file, 'r', fileEncode);

for line in f:

if (not isInBlockNow) and line.find(descLineBegin) == 0:

pass;

elif (not isInBlockNow) and line.find(descBlockBegin) >= 0:

if line.find(descBlockBegin) > 0:

localCount += 1

isInBlockNow = True;

elif isInBlockNow and line.find(descBlockEnd) >= 0:

if line.find(descBlockEnd) + len(descBlockEnd) < len(line):

localCount += 1

isInBlockNow = False;

elif (not isInBlockNow) and len(line.replace('\\s+', '')) > 0:

localCount += 1

f.close()

totalCount += localCount

print('%s : %d' % (file, localCount))

if __name__ == '__main__':

main();

开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python实现的代码行数统计代码!

python显示代码行数_python实现的代码行数统计代码相关推荐

  1. python画自己的名字_Python+OpenCV 十几行代码模仿世界名画

    原标题:Python+OpenCV 十几行代码模仿世界名画 现在很多人都喜欢拍照(自拍).有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma.versa 等, ...

  2. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

  3. python缩进tab还是空格_Python码农有话说:写代码时应该缩进使用 tab还是空格?...

    对于程序员来说,其实 Tab和 空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了. ...

  4. python递归判断回文数_Python实现判断回文数算法

    回文数的定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例1: 输入:121 输出:True 示例2: 输入:-121 输出:False 解释: 从左向右读, 为 -121 . ...

  5. 统计代码放在网站php,网站添加简单访客统计代码

    都知道,网站的来访量的多少只有网站主自己知道,是因为在后台安装统计工具,访客想要知道某个网站有多少来访量怎么办呢?其实还可以通过添加代码在网站的前端显示哦,那么今天明星就来说说网站如何添加访客统计代码 ...

  6. python 2048游戏的设计_Python练习:100行代码实现一个简易的2048游戏

    一.任务目标 1.一个在命令行下的2048游戏 2.主要实现功能:判断游戏是否结束:在随机空白位置生成新的数字:上下左右四个方向上进行平移数字并将能合并的数字进行合并:接收键盘输入:将数字阵列显示到命 ...

  7. cmd打开python显示不是内部_Python命令行窗口提示“不是内部或外部命令……”的解决方法...

    前提:已在[控制面板\系统和安全\系统\高级系统设置\高级\环境变量]里修改变量Path,编辑系统变量后面添加了[;D:\Python27],可以在命令行模式下正常进入Python交互式环境,并能直接 ...

  8. python文件关键行数_Python计算大文件行数方法及性能比较

    如何使用Python快速高效地统计出大文件的总行数, 下面是一些实现方法和性能的比较. 1.readline读所有行 使用readlines方法读取所有行: def readline_count(fi ...

  9. python代码300行程序_python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

  10. python闹钟界面源码_Python GUI 教程 25行代码写一个小闹钟

    今天我们讲一下用Python写的GUI小程序.一个小闹钟(只是屏幕提示,没有声音哦) 让我们先介绍这个闹钟如何奇葩. 需要通过命令行启动. 没有标题栏. 没菜单. 甚至没有关闭按钮. 没有运行界面. ...

最新文章

  1. 剑指offer第41题 和为s的两个数
  2. 在C#代码中获取Silverlight的初始化initparams参数
  3. Spring Cloud Eureka 自我保护机制
  4. python 调用c++
  5. Zabbix server is not running: the information displayed may not be current.
  6. OpenGL 投光物Light casters
  7. mysql 删除用户变量_MySql安装与MySQL添加用户、删除用户与授权
  8. Linux学习笔记(三)
  9. 雨林木风win11 64位原版系统v2021.08
  10. 经典计算机实现量子逻辑门,量子计算机:对量子逻辑门的探讨
  11. labuladong的算法小抄pdf_东哥手写正则通配符算法,结构清晰,包教包会!
  12. python小说全站爬虫_起点小说网全站爬虫(Python)
  13. 创建触发器报错_Oracle行级触发器的使用
  14. 操作系统的起源与发展历程
  15. 【计算机网络】网络通信基础
  16. React_music开发日记
  17. Python:批量修改图片的后缀名
  18. 任务管理器服务中没有mysql_已安装的Mysql在任务管理器中找不到的解决方法
  19. Apollo星火计划学习笔记——Apollo速度规划算法原理与实践
  20. idea无法识别中文

热门文章

  1. 信号学习第一课--基础知识
  2. haproxy Starting proxy XXX: cannot bind socket
  3. shell脚本实现菜单操作
  4. Go 学习之路:Println 与 Printf 的区别
  5. HDU - 4456 Crowd
  6. 在整个数据库搜索某个字符串在哪个表的哪个字段中
  7. POJ 2112 二分+最大流
  8. 九度OJ1005题 一直WA??
  9. android 之 TabHost
  10. linux的centos7安装mysql5.7服务教程