由于此处未讨论的原因,代码行对任何事物都是不好的衡量标准。但有没有一种巧妙的方法来计算Python源代码文件中的语句?
答案 0 :(得分:3)
pylint直接在其输出报告中给出:
pylint main.py
...
Report
======
145 statements analysed.
答案 1 :(得分:1)
为了计算代码的物理行(而不是逻辑代码行),我发现SLOCCount给出了合理的数字。
答案 2 :(得分:1)
使用ast
模块解析并构造Python代码中的语法树。您将能够根据该树和节点应用您想要的自定义计数算法。
答案 3 :(得分:0)
尽管这是一个旧帖子。这是一段代码,它以与PyLint相同的方式对python源文件中的语句进行计数。
from astroid import MANAGER
# Tested with astroid 2.3.0.dev0
class ASTWalker:
"""
Class to walk over the Astroid nodes
"""
def __init__(self):
self.nbstatements = 0
def walk(self, astroid_node):
"""
Recurse in the astroid node children and count the statements.
"""
if astroid_node.is_statement:
self.nbstatements += 1
# recurse on children
for child in astroid_node.get_children():
self.walk(child)
walker = ASTWalker()
ast_node = MANAGER.ast_from_file("/my/file/name", source=True)
walker.walk(ast_node)
print(walker.nbstatements)