其实代码和空白行很好统计,难点是注释行

python中的注释分为以#开头的单行注释

或者以'''开头以'''结尾 或以"""开头以"""结尾的文档注释,如:

'''

hello world

'''和

'''

hello world'''

思路是用is_comment记录是否存在多行注释,如果不存在,则判断当前行是否以'''开头,是则将is_comment设为True,否则进行空行、当前行注释以及代码行的判断,如果is_comment已经为True即,多行注释已经开始,则判断当前行是否以'''结尾,是则将is_comment设为False,同时增加注释的行数。表示多行注释已经结束,反之继续,此时多行注释还未结束

path = 'test.py'
with open(path,'r',encoding='utf-8') as f:code_lines = 0       #代码行数comment_lines = 0    #注释行数blank_lines = 0      #空白行数  内容为'\n',strip()后为''is_comment = Falsestart_comment_index = 0 #记录以'''或"""开头的注释位置for index,line in enumerate(f,start=1):line = line.strip() #去除开头和结尾的空白符

     #判断多行注释是否已经开始 if not is_comment:if line.startswith("'''") or line.startswith('"""'):is_comment = Truestart_comment_index = index#单行注释elif line.startswith('#'):comment_lines += 1#空白行elif line == '':blank_lines += 1#代码行else:code_lines += 1#多行注释已经开始else:if line.endswith("'''") or line.endswith('"""'):is_comment = Falsecomment_lines += index - start_comment_index + 1else:passprint("注释:%d" % comment_lines)
print("空行:%d" % blank_lines)
print("代码:%d" % code_lines)

转载于:https://www.cnblogs.com/hupeng1234/p/6680230.html

统计python文件中的代码,注释,空白对应的行数相关推荐

  1. python乘法表代码注释_Python统计python文件中代码,注释及空白对应的行数示例【测试可用】...

    本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数.分享给大家供大家参考,具体如下: 其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或 ...

  2. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  3. 调用另一个python文件中的代码

    python3.*版本下好像不一样,正确引用方法: utils是同级目录,options是文件,后面是函数 from .utils.options import parseOptions from . ...

  4. 转:如何调用另一个python文件中的代码

    原文地址:https://www.cnblogs.com/jiuyigirl/p/7146223.html 如何调用另一个python文件中的代码 无论我们选择用何种语言进行程序设计时,都不可能只有一 ...

  5. python文件中的代码调用以及“__init__.py“ 文件说明

    python文件中的代码调用以及"__init__.py" 文件说明 如何调用另一个python文件中的代码 同一文件目录下 不同文件目录下 "__init__.py&q ...

  6. python如何调用文件_如何调用另一个python文件中的代码

    原博文 2017-07-10 15:56 − 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另 ...

  7. c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....

    #include #include using namespace std; /* 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. */ void count() { //统 ...

  8. python读取日志统计ip_使用python脚本实现统计日志文件中的ip访问次数

    使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...

  9. 学校作业5_3字符串_统计英文文件中的单词数(头哥作业[Python])

    本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢. 本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上 ...

  10. 批量无损删除项目中的代码注释方法

    本篇文章主要讲解,通过工具实现保留路径并批量无损删除,项目中的代码注释的方法 工具说明:无损清理项目代码注释,适用于python.c.java.js.html.css.php.mysql等编程语言常见 ...

最新文章

  1. 【转载】WinCE OAL架构分析
  2. 常用的 linux命令
  3. 安卓高手之路之PackageManagerservice
  4. 1、Android测试入门
  5. [转] 数学符号英文拼写及发音
  6. Java程序转成exe可执行程序方法和exe4_j下载地址和破解。
  7. HTTP 错误 500.19 - Internal Server Error
  8. MyEclipse9安装Checkstyle5.5插件(图解)
  9. HierarchicalBeanFactory
  10. 深度学习(二十一)基于FCN的图像语义分割
  11. oracle左连接查询代码,ORACLE连接查询,内外连接
  12. 腾讯云开发者大会 | 腾讯云大学首次与业界顶尖厂商合作的线上学习专区重磅发布...
  13. 一副对联,送给所有创业小公司
  14. Qt connect parent widget 连接父控件的信号槽
  15. arduino/mixly 智纳捷TTS语音合成模块进阶一
  16. python学习----登陆
  17. adobe photoshop cs6 安装
  18. 如何优化在搜索引擎上的友好度
  19. 基于Qt5图形视图框架的“俄罗斯方块”
  20. Calendar 获取指定时间

热门文章

  1. BootStrap基本模板
  2. POJ1338 Ugly Numbers
  3. SQL Server | Mysql 对表的unique 的实现方式
  4. hb:一个简单的 http/web bench 工具
  5. 常用的一些注入命令!!!
  6. [Web 前端] 010 css 常用的边框设置
  7. Linux下Wordpress建站Guide
  8. [SDUT](3468)广度优先搜索练习之神奇的电梯 ---BFS(图)
  9. ext2文件系统学习(一)
  10. CMS 系统之 iframe 结构