Python脚本文件LineCount.py的相关代码介绍

开发 后端
以下的文章是通过Python脚本文件LineCount.py的相关实际代码来介绍Python脚本文件LineCount.py在实际操作中的具体应用的介绍。

Python脚本文件LineCount.py在实际运行的过程中会有很多简捷的技巧可供我们大家借鉴,我们可以将其使用在python脚本文件中,既Python脚本文件LineCount.py,如果你对Python脚本文件感兴趣的话,你就可以点击以下的文章。

因为最近在作的项目很特殊,所使用的语言是一个公司内部的IDE环境,而这个IDE所产生的代码并不是以文本方式存放的,都是放在二进制文件中,而且由于这门语言外界几乎接触不到,所以没有针对它的代码统计程序,当一个模块完成后要统计代码行数会很困难,要统计的话必须先把代码编辑器中的内容拷贝到一个文本类型的文件中。

正好一直在关注python,还没有用python写过程序,今天就利用中午休息的时间写了一个简单的代码统计程序。对输入的路径作递归,查找代码文件,对每一个代码文件计算它的注释行数,空行数,真正的代码行数。自己用的程序,就写的粗糙了,也没加异常处理。

主要的Python脚本文件LineCount.py的内容如下:

import sys;  
import os;  
 
class LineCount:  
def trim(self,docstring):  
if not docstring:  
return ''  
lines = docstring.expandtabs().splitlines()  
 
indent = sys.maxint  
for line in lines[1:]:  
stripped = line.lstrip()  
if stripped:  
indent = min(indent, len(line) - len(stripped))  
 
trimmed = [lines[0].strip()]  
if indent < sys.maxint: 
for line in lines[1:]:  
trimmed.append(line[indent:].rstrip())  
 
while trimmed and not trimmed[-1]:  
trimmed.pop()  
while trimmed and not trimmed[0]:  
trimmed.pop(0)  
 
return '\n'.join(trimmed)  
 
def FileLineCount(self,filename):  
(filepath,tempfilename) = os.path.split(filename);  
(shotname,extension) = os.path.splitext(tempfilename);  
if extension == '.txt' or extension == '.hol' : # file type   
file = open(filename,'r');  
self.sourceFileCount += 1;  
allLines = file.readlines();  
file.close();  
 
lineCount =0;  
commentCount = 0;  
blankCount = 0;  
codeCount = 0;  
for eachLine in allLines:  
if eachLine != " " :  
eachLineeachLine = eachLine.replace(" ",""); #remove space  
eachLine = self.trim(eachLine); #remove tabIndent  
if eachLine.find('--') == 0 : #LINECOMMENT   
commentCount += 1;  
else :  
if eachLine == "":  
blankCount += 1;  
else :  
codeCount += 1;  
lineCountlineCount = lineCount + 1;  
self.all += lineCount;  
self.allComment += commentCount;  
self.allBlank += blankCount;  
self.allSource += codeCount;  
print filename;  
print ' Total :',lineCount ;  
print ' Comment :',commentCount;  
print ' Blank :',blankCount;  
print ' Source :',codeCount;  
 
def CalulateCodeCount(self,filename):  
if os.path.isdir(filename) :  
if not filename.endswith('\\'):  
filename += '\\';   
for file in os.listdir(filename):  
if os.path.isdir(filename + file):  
self.CalulateCodeCount(filename + file);  
else:  
self.FileLineCount(filename + file);  
else:  
self.FileLineCount(filename);  
 
# Open File  
def __init__(self):  
self.all = 0;  
self.allComment =0;  
self.allBlank = 0;  
self.allSource = 0;  
self.sourceFileCount = 0;  
filename = raw_input('Enter file name: ');  
self.CalulateCodeCount(filename);  
if self.sourceFileCount == 0 :  
print 'No Code File';  
pass;  
print '\n';  
print '***************** All Files **********************';  
print ' Files :',self.sourceFileCount;  
print ' Total :',self.all;  
print ' Comment :',self.allComment;  
print ' Blank :',self.allBlank;  
print ' Source :',self.allSource;  
print '****************************************************';  
 
myLineCount = LineCount(); 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.

可以看到extension == '.txt' or extension == '.hol'这句是判断文件的后缀,来确定是否要计算代码行数。if eachLine.find('--') == 0 :这句来判断当前行是不是单行注释(我们的这门语言不支持块注释)以上就是对Python脚本文件LineCount.py的相关代码的介绍。为了能在其他机器上运行,使用了py2exe来把python脚本生成可执行的exe,setup.py脚本内容如下:

from distutils.core import setup  
import py2exe  
setup(  
version = "0.0.1",  
description = "LineCount",  
name = "LineCount",  
console = ["LineCount.py"],  
)   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

 

不过生成exe后程序臃肿很多,有3M多。感觉使用python确实是件很惬意的事。 以上的文章就是对python写的代码行数统计程序的相关内容的介绍。

【编辑推荐】

  1. 对Python源代码组织的相关实际操作步骤解析
  2. Python安装的步骤操作其实是件很容易的事
  3. 对Python源代码组织的相关实际操作步骤解析
  4. Python编程语言在Zope软件开发中具体应用
  5. Python嵌入C/C++在释放资源中的实际操作步骤详解
责任编辑:佚名 来源: 互联网
相关推荐

2010-04-08 09:27:44

Oracle 安装脚本

2010-02-01 16:32:49

Python脚本

2010-03-25 13:19:57

Python_ast.

2010-03-19 14:44:30

Python模块级函数

2009-12-03 10:06:33

Ubuntushell脚本

2010-03-26 15:28:05

Python编写

2009-06-12 18:30:12

Groovy 静态ma

2010-01-15 16:21:45

VB.NET读写文本文

2010-03-29 17:37:17

Nginx resin

2010-03-25 10:13:03

Python代码

2010-03-23 13:50:24

python教程

2010-03-25 12:50:45

Python代码

2010-03-26 16:17:24

Python嵌入

2010-03-23 08:56:38

Python随机数模块

2010-03-26 16:35:29

Python open

2010-03-11 16:50:27

Python应用

2010-03-19 16:51:53

Java Socket

2010-03-17 19:24:38

Java多线程循环

2021-04-24 23:00:43

Windows 10Windows微软

2009-02-01 10:29:04

Oracle数据库管理
点赞
收藏

51CTO技术栈公众号