基於py3的程式碼行數統計工具(簡易版)
#encoding = utf-8 import os
def get_python_file_abspath(dirpath,all_files = []): '''獲取指定資料夾下python檔名''' #先判斷指定的路徑是檔案還是目錄 if os.path.isdir(dirpath):#是目錄,而且此目錄存在 files = os.listdir(dirpath)#列出此目錄下所有的子檔案和子目錄 for file in files: file_path = os.path.join(dirpath, file)#絕對路徑拼接 get_python_file_abspath(file_path)#不加return,否則all_files中只會有一個元素
elif os.path.isfile(dirpath) and os.path.splitext(dirpath)[1] == '.py':#檔案存在 all_files.append(dirpath) return all_files
def get_file_code_lines(filename): '''統計輸入的檔案中有效的程式碼行數''' code_lines = 0 with open(filename,encoding = 'ISO-8859-1') as fp: lines = fp.readlines() #讀取所有的內容放到列表中 ## print(len(lines)) for line in lines: line = line.strip() if line and line[:3]!="'''" and line[0]!='#':#過濾掉註釋 code_lines +=1 return code_lines
if __name__=='__main__': filename = r'F:\' result = 0 for file in get_python_file_abspath(filename): num = get_file_code_lines(file) print('%s檔案中有效程式碼行數為:%d'%(file,num)) result += num print('*'*40) print('%s目錄下所有檔案的有效程式碼行數為:%d'%(filename,result)) print('*'*40)