【问题标题】:Lines of Code in Eclipse PyDev ProjectsEclipse PyDev 项目中的代码行
【发布时间】:2011-03-13 22:57:37
【问题描述】:
我想知道是否有人在使用 Eclipse Metrics 插件和非 Java 项目(特别是我正在尝试为几个 PyDev 项目生成代码指标)时有运气。我已经阅读了 Metrics 项目的演练,但它表明在访问我的项目的属性之前我应该在 Java 透视图中,并且我应该找到一个 Metrics 部分。无论我打开哪个 Perspective,我的 PyDev 项目都没有。任何建议或建议都会很棒。
【问题讨论】:
标签:
python
eclipse
plugins
metrics
pydev
【解决方案1】:
我不知道让插件与 pydev 项目一起工作是否可行,但如果它只是您所追求的 lines-of-code 指标,您可以在项目的根目录中运行这个 sn-p:
# prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc
import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])
loclist = []
for pydir, _, pyfiles in os.walk(cur_path):
for pyfile in pyfiles:
if pyfile.endswith(".py") and pyfile not in ignore_set:
totalpath = os.path.join(pydir, pyfile)
loclist.append( ( len(open(totalpath, "r").read().splitlines()),
totalpath.split(cur_path)[1]) )
for linenumbercount, filename in loclist:
print "%05d lines in %s" % (linenumbercount, filename)
print "\nTotal: %s lines (%s)" %(sum([x[0] for x in loclist]), cur_path)
【解决方案2】:
如果你在 Linux 中...
你看过cloc吗?
它产生非常完整的输出,并接受几个选项:
borrajax@borrajax-linux:~/Documents/Projects/myProject$ cloc .
1840 text files.
1566 unique files.
9362 files ignored.
http://cloc.sourceforge.net v 1.53 T=3.0 s (454.3 files/s, 81397.0 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
Javascript 709 19190 17283 93862
Python 333 6278 3399 38398
C 86 3244 2303 17755
CSS 122 1786 1592 16856
HTML 55 784 51 8072
Bourne Shell 14 651 280 6641
C/C++ Header 6 301 293 1259
XML 9 5 0 1153
PHP 2 88 211 585
SQL 19 200 127 576
Bourne Again Shell 2 57 15 494
make 5 41 19 187
DOS Batch 1 21 1 133
--------------------------------------------------------------------------------
SUM: 1363 32646 25574 185971
--------------------------------------------------------------------------------
它也可以在 Ubuntu 存储库中使用。
【解决方案3】:
在 Unix 上,您可以从终端运行以下命令:
find . -name '*.py' | xargs cat | egrep "[a-zA-Z0-9_{}]" | wc -l
如果你不想计算cmets,你需要一个更好的正则表达式......