python統(tǒng)計指定目錄內(nèi)文件的代碼行數(shù)
python統(tǒng)計指定目錄內(nèi)文件的代碼行數(shù),程序?qū)崿F(xiàn)統(tǒng)計指定目錄內(nèi)各個python文件的代碼總行數(shù),注釋行數(shù),空行數(shù),并算出所占百分比
這符合一些公司的小需求,實(shí)際代碼量的統(tǒng)計工作
效果如圖


代碼如下:
#coding:utf-8
import os,re
#代碼所在目錄
FILE_PATH = './'
def analyze_code(codefilesource):
'''
打開一個py文件,統(tǒng)計其中的代碼行數(shù),包括空行和注釋
返回含該文件總行數(shù),注釋行數(shù),空行數(shù)的列表
:param codefilesource:
:return:
'''
total_line = 0
comment_line = 0
blank_line = 0
with open(codefilesource,encoding='gb18030',errors='ignore') as f:
lines = f.readlines()
total_line = len(lines)
line_index = 0
#遍歷每一行
while line_index < total_line:
line = lines[line_index]
#檢查是否為注釋
if line.startswith("#"):
comment_line += 1
elif re.match("\s*'''",line) is not None:
comment_line += 1
while re.match(".*'''$",line) is None:
line = lines[line_index]
comment_line += 1
line_index += 1
#檢查是否為空行
elif line =='\n':
blank_line += 1
line_index += 1
print("在%s中:"%codefilesource)
print("代碼行數(shù):",total_line)
print("注釋行數(shù):",comment_line,"占%0.2f%%"%(comment_line*100/total_line))
print("空行數(shù):", blank_line, "占%0.2f%%"%(blank_line * 100 / total_line))
return [total_line,comment_line,blank_line]
def run(FILE_PATH):
os.chdir(FILE_PATH)
#遍歷py文件
total_lines = 0
total_comment_lines = 0
total_blank_lines = 0
for i in os.listdir(os.getcwd()):
if os.path.splitext(i)[1] == '.py':
line = analyze_code(i)
total_lines,total_comment_lines,total_blank_lines=total_lines+line[0],total_comment_lines+line[1],total_blank_lines+line[2]
print("總代碼行數(shù):",total_lines)
print("總注釋行數(shù):",total_comment_lines,"占%0.2f%%"%(total_comment_lines*100/total_lines))
print("總空行數(shù):", total_blank_lines, "占%0.2f%%"% (total_blank_lines * 100 / total_lines))
if __name__ == '__main__':
run(FILE_PATH)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python實(shí)現(xiàn)統(tǒng)計代碼行數(shù)的小工具
- python實(shí)現(xiàn)代碼統(tǒng)計器
- python實(shí)現(xiàn)代碼統(tǒng)計程序
- python tkinter圖形界面代碼統(tǒng)計工具(更新)
- python3使用GUI統(tǒng)計代碼量
- python tkinter圖形界面代碼統(tǒng)計工具
- 使用Python設(shè)計一個代碼統(tǒng)計工具
- Python實(shí)現(xiàn)統(tǒng)計代碼行的方法分析
- python 統(tǒng)計代碼行數(shù)簡單實(shí)例
- Python實(shí)現(xiàn)代碼統(tǒng)計工具
相關(guān)文章
Python新手入門之單引號、雙引號與三引號的差異與應(yīng)用示例
在Python當(dāng)中表達(dá)字符串既可以使用單引號,也可以使用雙引號,那兩者有什么區(qū)別嗎?下面這篇文章主要給大家介紹了關(guān)于Python新手入門之單引號、雙引號與三引號的差異與應(yīng)用示例,需要的朋友可以參考下2024-03-03
Python sqlparse 解析庫的基礎(chǔ)使用過程解析
sqlparse 是一個 Python 庫,是一個用于 Python 的非驗(yàn)證 SQL 解析器, 用于解析 SQL 語句并提供一個簡單的 API 來訪問解析后的 SQL 結(jié)構(gòu),這篇文章主要介紹了Python sqlparse 解析庫的基礎(chǔ)使用,需要的朋友可以參考下2024-08-08
Python實(shí)現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài)【推薦】
今天主要是來說一下怎么可視化來監(jiān)控你的爬蟲的狀態(tài)。文中通過實(shí)例代碼給大家分析了Python實(shí)現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài),感興趣的朋友一起看看吧2018-08-08
Python高階函數(shù)extract與extractall使用實(shí)例探究
這篇文章主要為大家介紹了Python高階函數(shù)extract與extractall使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python機(jī)器學(xué)習(xí)算法庫scikit-learn學(xué)習(xí)之決策樹實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)算法庫scikit-learn學(xué)習(xí)之決策樹實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了決策樹算法的原理及使用sklearn庫實(shí)現(xiàn)決策樹的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
Jupyter安裝拓展nbextensions及解決官網(wǎng)下載慢的問題
這篇文章主要介紹了Jupyter安裝拓展nbextensions及解決官網(wǎng)下載慢的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python+Pygame實(shí)戰(zhàn)之吃豆豆游戲的實(shí)現(xiàn)
這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)仿吃豆豆游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下2022-06-06

