成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編寫Python程序實現行數統計

開發 后端
我們在這里編寫的Python程序主要是實現對代碼行數的統計。希望初學者們可以通過本文介紹的內容,加深對這一語言的認知程度。

當我們在使用Python編程語言進行程序開發的時候,會發現這一功能強大的語言可以給我們帶來非常大的作用。那么,接下來我們將會通過一個Python程序的實現,來仔細分析一下這語言給我們帶來的獨特之處。#t#

正好一直在關注Python,還沒有用Python寫過程序,今天就利用中午休息的時間寫了一個簡單的Python程序用于代碼統計。對輸入的路徑作遞歸,查找代碼文件,對每一個代碼文件計算它的注釋行數,空行數,真正的代碼行數。自己用的程序,就寫的粗糙了,也沒加異常處理。

主要的Python程序腳本文件LineCount.py的內容如下:

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

可以看到extension == '.txt' or extension == '.hol'這句是判斷文件的后綴,來確定是否要計算代碼行數。if eachLine.find('--') == 0 :這句來判斷當前行是不是單行注釋(我們的這門語言不支持塊注釋)。為了能在其他機器上運行,使用了py2exe來把Python腳本生成可執行的exe,setup.py腳本內容如下:

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

 

不過生成exe后程序臃腫很多,有3M多。感覺使用Python程序確實是件很愜意的事。

責任編輯:曹凱 來源: 博客園
相關推薦

2019-08-01 15:08:37

PythonLine操作系統

2015-07-22 12:42:36

Pivot行列轉換

2011-06-16 10:09:25

QT Windows DLL

2025-05-29 02:15:00

統計代碼行數

2011-06-27 13:57:42

JavaScript

2022-06-24 09:58:35

大數據JavaPython

2020-12-14 13:24:17

PandasSQL數據集

2009-12-08 18:01:00

曙光移動集中采購

2012-09-13 10:44:18

Python代碼

2010-02-03 09:27:21

編寫Python程序

2022-11-17 10:23:13

VS CodeCodiumPython

2017-11-20 14:46:27

命令代碼

2010-03-04 09:49:58

Python Hell

2025-07-03 09:16:51

Python編程代碼

2011-06-16 17:54:30

Qt Mplayer

2015-05-08 13:09:12

JavaScriipt抽獎程序

2011-11-08 10:13:20

2011-03-02 15:35:15

Oracle分組統計

2010-03-04 15:45:56

Python程序調試

2018-03-30 10:26:24

行間距行高iOS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产1区2区 | 伊人国产精品 | 色综久久 | 成人精品毛片国产亚洲av十九禁 | 蜜桃臀av一区二区三区 | 伊人伊人 | 97视频成人 | 黄色成人免费在线观看 | 色橹橹欧美在线观看视频高清 | 91人人爽| 国产精品久久久久久久久免费桃花 | av在线免费不卡 | 久久区二区 | 国产偷自视频区视频 | av毛片在线播放 | 亚洲第一天堂无码专区 | 欧美99| 欧美日产国产成人免费图片 | 国产精品色婷婷久久58 | 成人精品一区二区三区中文字幕 | 成人h视频在线观看 | 国产精品中文字幕在线 | 亚洲一区二区三区视频 | 欧美成人自拍 | 久久久高清 | 黄色大片在线视频 | 亚洲一区视频在线 | 亚洲国产成人精品女人 | 日韩视频三区 | 国产精品区一区二区三 | 久久精品亚洲精品国产欧美kt∨ | 黄色播放 | 欧美不卡视频 | 夏同学福利网 | 国产精品久久久久久久久久妇女 | 人人干超碰 | 日日干夜夜操 | 四虎伊人| 日韩视频在线免费观看 | 日韩视频区 | 97caoporn国产免费人人 |