Python实现统计代码行数功能
生活随笔
收集整理的這篇文章主要介紹了
Python实现统计代码行数功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此程序可統(tǒng)計任意開發(fā)語言代碼行數,廢話不多說,直接上代碼
# coding:utf-8 """ 此程序用于統(tǒng)計代碼行數,可返回文件代碼行、空白行、注釋行的數量 """ import osdef count_line_num(flie_path, single_line_annotation='#', multi_line_annotation_start=('"""', "'''"),multi_line_annotation_end=('"""', "'''",)):"""統(tǒng)計單個文件代碼行數:param flie: 代碼文件地址:param single_line_annotation: 單行注釋標識,如python代碼'#':param multi_line_annotation_start: 多行注釋開始標識,如python代碼 ''':param multi_line_annotation_end: 多行注釋結束標識,如python代碼 ''':return: 代碼行數,空行行數,注釋行數"""code_num = 0 # 代碼行數blank_num = 0 # 空行行數annotation_num = 0 # 注釋行數with open(flie_path, encoding='utf8') as f:flag = False # 多行注釋表示位, True表示多行注釋 False表示代碼for i in f.readlines():i = i.strip().strip('\n')if not i: # 判斷是否為空行# print('空行' + i)blank_num += 1continueelse:if i.startswith(single_line_annotation): # 單行注釋annotation_num += 1# print('注釋 ' + i)continueif i.startswith(multi_line_annotation_start) and i.endswith(multi_line_annotation_end): # 多行注釋標識注釋單行annotation_num += 1# print('注釋 ' + i)continueif not flag and i.startswith(multi_line_annotation_start): # 多行注釋開始flag = Trueannotation_num += 1# print('注釋 ' + i)continueif flag: # 多行注釋# print('注釋 ' + i)annotation_num += 1if i.endswith(multi_line_annotation_end): # 多行注釋結束flag = Falsecontinue# print('代碼' + i)code_num += 1return code_num, blank_num, annotation_numif __name__ == '__main__':file_list = [] # 定義文件列表file_dir = 'D:\\代碼統(tǒng)計' # 目錄地址for root, dirs, files in os.walk(file_dir): # 讀取目錄下的所有文件t = [os.path.join(root, i) for i in files]file_list += ttotal_code_num = 0total_blank_num = 0total_annotation_num = 0for i in file_list:code_num, blank_num, annotation_num = 0, 0, 0if i.endswith('.py'): # python文件code_num, blank_num, annotation_num = count_line_num(i)# 打印單個文件代碼數量print(i)print('code num: ', code_num)print('blank num: ', blank_num)print('annotation num: ', annotation_num)if i.endswith('.html'): # html文件code_num, blank_num, annotation_num = count_line_num(i, single_line_annotation='//',multi_line_annotation_start=('/*', '<!--', '{#'),multi_line_annotation_end=('*/', '-->', '#}'))# 打印單個文件代碼數量print(i)print('code num: ', code_num)print('blank num: ', blank_num)print('annotation num: ', annotation_num)total_code_num += code_numtotal_blank_num += blank_numtotal_annotation_num += annotation_num# 打印統(tǒng)計數量print('-----total--------')print('total code num: ', total_code_num)print('total blank num: ', total_blank_num)print('total annotation num: ', total_annotation_num)總結
以上是生活随笔為你收集整理的Python实现统计代码行数功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql查询表记录总数sql_SQL
- 下一篇: 稳态流程模拟软件