2014-01-15 40 views
1

我在教科书中发现此问题,通过运行它来编写代码来计算程序的行数。在Python中计算程序的行数

这是我有:

import commands,os,sys 

def count_lines(modul): 
    cmd="wc -l " + modul +" | awk '{print $1}'" 
    return commands.getoutput(cmd) 


if __name__=='__main__': 
    print count_lines(sys.modules[__name__].__file__) 

看来工作,但我不知道这是否以正确的方式去做。我认为这很简单。

+3

你不真的在那里写Python。你正在用Python包装器编写一个shell脚本。 – user2357112

+0

'wc -l“文件”| awk'{print $ 1}''将在没有python的情况下工作。 –

+0

@ user2357112:我同意;但大多数python函数都是'C'的包装器。纠正我,如果我错了..? – eagertoLearn

回答

3

print "I AM %d LINES LONG"%len(list(open(__file__)))只是把在任何文件...

如果坚持关闭您的文件(而一个良好的习惯,没有必要用Cython特别是仅在读)

with open(__file__) as f: 
    print "I AM %d LINES LONG"%len(list(f)) 
+0

'len(open(__ file).read())'? – aIKid

+0

你不需要这个......它会是我认为的readlines ...但是默认情况下它会迭代到一个列表中吗? –

+0

它必须计算该行所在文件的行数?它会起作用吗? – eagertoLearn