You need to enable JavaScript to run this app. 如何使用pygount分析源码统计代码、注释、空行总和及路径问题处理
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pygount分析源码统计代码、注释、空行总和及路径问题处理

问题1:ROOT_DIR的.parent调用次数判断

__file__指向的是当前utils/__init__.py文件的完整路径,路径层级为:TestProject/utils/__init__.py

  • 调用1次.parent得到的是TestProject/utils/(utils文件夹本身)
  • 调用2次.parent得到的是TestProject/(项目根目录)
    你当前写的Path(__file__).parent.parent是正确的,刚好定位到TestProject根目录,不需要修改。

问题2:loc.py中的路径配置错误

你当前的ROOT_DIR已经指向TestProject根目录,不需要再额外拼接"TestProject"子目录,ROOT_DIR / "TestProject"对应的实际路径是TestProject/TestProject,这个路径在你的项目结构中不存在,这是核心错误。
将count方法里的遍历代码修改为:

import os
from pygount import SourceAnalysis # 别忘了补导入
from utils import ROOT_DIR

class Counter:
    def __init__(self):
        self.code = 0
        self.docs = 0
        self.empty = 0

    def count(self):
        # 去掉多余的TestProject拼接
        for subdir, _, files in os.walk(ROOT_DIR):
            for file in (f for f in files if f.endswith(".py")):
                # 用Path拼接路径更稳妥,避免Windows/Linux分隔符不兼容
                file_path = Path(subdir) / file
                analysis = SourceAnalysis.from_file(str(file_path), "pygount", encoding="utf-8")
                self.code += analysis.code_count
                self.docs += analysis.documentation_count
                self.empty += analysis.empty_count

其他注意事项

  • loc.py代码中用到了os和SourceAnalysis,如果没有写对应的导入语句需要补上,否则运行会报错
  • 如果你需要排除统计某个子目录(比如虚拟环境目录、缓存目录),可以在遍历的时候加判断过滤,比如if '__pycache__' in subdir: continue

内容的提问来源于stack exchange,提问作者Taraxiah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 22:15:11