虽然常用的代码管理工具都有行数统计,不过考虑到不是所有的代码都会推到仓库,我们需要一个本地统计代码的小工具。
这边抽空写了一个对指定路径、指定扩展名统计代码行数的小工具,分享给大家。
非生产代码无分享风险
# -*- encoding: utf-8 -*-
'''
@File ? ?: ? line_counter.py
@Time ? ?: ? 2023/12/13 12:15:44
@describe: ? 一个行数统计工具,统计指定文件夹下的指定扩展名
'''
import os
?
def count_lines(file_path):
? ? try:
? ? ? ? with open(file_path, 'r', encoding='utf-8') as file:
? ? ? ? ? ? lines = file.readlines()
? ? ? ? ? ? return len(lines)
? ? except Exception as e:
? ? ? ? print(f"Error reading file {file_path}: {e}")
? ? ? ? return 0
?
def count_lines_in_directory(directory_path, extensions):
? ? total_lines = 0
?
? ? for root, dirs, files in os.walk(directory_path):
? ? ? ? for file_name in files:
? ? ? ? ? ? if any(file_name.endswith(ext) for ext in extensions):
? ? ? ? ? ? ? ? file_path = os.path.join(root, file_name)
? ? ? ? ? ? ? ? lines = count_lines(file_path)
? ? ? ? ? ? ? ? print(f"{file_path}: {lines} lines")
? ? ? ? ? ? ? ? total_lines += lines
?
? ? print(f"\nTotal lines in {directory_path}: {total_lines} lines")
?
if __name__ == "__main__":
? ? target_directory = r'D:\shscripts' ?# 或者直接将目标路径写在代码中
? ? file_extensions = ['.py', '.sh','.go']
?
? ? count_lines_in_directory(target_directory, file_extensions)
?
?