1. 程式人生 > 實用技巧 >[python] 簡易程式碼量統計指令碼

[python] 簡易程式碼量統計指令碼

"""
遞迴統計某個目錄下給定型別的程式碼檔案總行數
但實際使用中由於只能通過後綴區分,總會有一些問題造成誤差(庫、二進位制檔案等)
"""
import os


def calc_file(file_path):
    """統計單檔案的行數"""

    count = 1
    for line in open(file_path, 'r', errors='ignore'):
        # 有效避免各種編碼問題
        count += 1
    return count


def calc_folder(path, types=('py', )):
    
""""統計資料夾中特定型別檔案各自的總行數""" count_dict = dict.fromkeys(types, 0) for dirpath, _, filenames in os.walk(path): if dirpath == 'venv': continue for name in filenames: suffix = name.rsplit('.')[-1] if suffix not in types: continue
filepath = os.path.join(dirpath, name) count_dict[suffix] += calc_file(filepath) return count_dict if __name__ == '__main__': folder = r'F:\CODE\West2online\python\三輪\Cyakka\app' file_types = ('py', 'c', 'cpp', 'html', 'css', 'js', 'vbs', 'asm', ) total = 0
for suf, cnt in calc_folder(folder, file_types).items(): total += cnt print(f'{suf}檔案總行數:{cnt}') print(f'{folder}資料夾內程式碼總行數:{total}')

執行示例:

py檔案總行數:1100
c檔案總行數:0
cpp檔案總行數:0
html檔案總行數:1613
css檔案總行數:7976
js檔案總行數:2945
vbs檔案總行數:0
asm檔案總行數:0
F:\CODE資料夾內程式碼總行數:13634