发段统计代码行数的小程序
发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 105235 2009), 转信
本人刚写的统计当前目录及子目录内所有.h和.cpp文件的非空代码行数,想请教版
上各位高手还有没有更pythonic的写法
– coding cp936 –
import os
totalline,totalfile = 0,{}
for root, dirs,files in os.walk(os.getcwd(),True)
flst = [f for f in files if os.path.splitext(os.path.split(f)[1])[1] in
(.cpp,.h)]
for f in flst
fname = os.path.join(root,f)
ft = open(fname)
totalfile[fname] = len([t for t in ft if len(t.strip())!= 0])
totalline += totalfile[fname]
ft.close()
print %s %d行代码 % (fname, totalfile[fname])
print 整个工程有代码%d行,文件%d个 % (totalline, len(totalfile))
os.system(‘pause’)
–
※ 来源・水木社区 httpnewsmth.net・[FROM 218.5.2.]
[本篇全文] [回复文章] [本篇作者:jigloo] [回信给作者] [进入讨论区] [返回顶部]
2
发信人 jigloo (帅过王力宏), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 111546 2009), 转信
写了一个,请诸位指教
def findfiles(path)
for root, dirs, names in os.walk(path)
for name in names
yield os.path.join(root, name)
def countlines(filename)
return len([x for x in open(filename) if x.strip()])
if name == ‘main’
lines = dict((x, countlines(x)) for x in findfiles('.') if x.endswith(('.h', 'cpp')))
print u'共有%d文件,%d行' % (len(lines), sum(lines.itervalues()))
【 在 mabuaa (jackyma) 的大作中提到 】
本人刚写的统计当前目录及子目录内所有.h和.cpp文件的非空代码行数,想请教版
上各位高手还有没有更pythonic的写法
# – coding cp936 –
……………….
–
※ 来源・水木社区 httpnewsmth.net・[FROM 221.6.27.]
[本篇全文] [回复文章] [本篇作者:Kone] [回信给作者] [进入讨论区] [返回顶部]
3
发信人 Kone (Kneo), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 112715 2009), 转信
我发现list comprehension的一个结果是导致代码行变长,每行括号增多,读起来很吃力。
【 在 jigloo (帅过王力宏) 的大作中提到 】
写了一个,请诸位指教
def findfiles(path)
for root, dirs, names in os.walk(path)
……………….
–
※ 来源・水木社区 newsmth.net・[FROM 222.190.111.]
[本篇全文] [回复文章] [本篇作者:jigloo] [回信给作者] [进入讨论区] [返回顶部]
4
发信人 jigloo (帅过王力宏), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 113045 2009), 转信
恩,列表表达式很好用可是这个问题很令人苦恼
我后来都这样写比较长的列表表达式了
lines = dict( (x, countlines(x))
for x in findfiles('.')
if x.endswith(('.ini', 'cpp'))
)
【 在 Kone (Kneo) 的大作中提到 】
我发现list comprehension的一个结果是导致代码行变长,每行括号增多,读起来很吃力。
–
※ 来源・水木社区 httpnewsmth.net・[FROM 221.6.27.]
[本篇全文] [回复文章] [本篇作者:mabuaa] [回信给作者] [进入讨论区] [返回顶部]
5
发信人 mabuaa (jackyma), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 113146 2009), 转信
不错,受教了
【 在 jigloo (帅过王力宏) 的大作中提到 】
写了一个,请诸位指教
def findfiles(path)
for root, dirs, names in os.walk(path)
……………….
–
※ 来源・水木社区 httpnewsmth.net・[FROM 218.5.2.]
[本篇全文] [回复文章] [本篇作者:yifanw] [回信给作者] [进入讨论区] [返回顶部]
6
发信人 yifanw (王轶凡), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 113514 2009), 转信
我一般使用glob.glob()来根据pattern找文件,和unix shell的格式是一样的:
glob.glob(.h)
返回当前目录所以.h文件的文件名
还有就是openclose文件,使用with statement可能比较好
【 在 mabuaa (jackyma) 的大作中提到 】
本人刚写的统计当前目录及子目录内所有.h和.cpp文件的非空代码行数,想请教版
上各位高手还有没有更pythonic的写法
# – coding cp936 –
……………….
–
欢迎来CSARCH版
※ 修改・yifanw 于 Jan 6 115214 2009 修改本文・[FROM 202.101.8.]
※ 来源・水木社区 newsmth.net・[FROM 202.101.8.]
[本篇全文] [回复文章] [本篇作者:yifanw] [回信给作者] [进入讨论区] [返回顶部]
7
发信人 yifanw (王轶凡), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 113636 2009), 转信
文件未关闭
【 在 jigloo (帅过王力宏) 的大作中提到 】
写了一个,请诸位指教
def findfiles(path)
for root, dirs, names in os.walk(path)
……………….
–
欢迎来CSARCH版
※ 来源・水木社区 newsmth.net・[FROM 202.101.8.]
[本篇全文] [回复文章] [本篇作者:jigloo] [回信给作者] [进入讨论区] [返回顶部]
8
发信人 jigloo (帅过王力宏), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 113839 2009), 转信
偷懒了一下 )
【 在 yifanw (王轶凡) 的大作中提到 】
文件未关闭
–
※ 来源・水木社区 httpnewsmth.net・[FROM 221.6.27.]
[本篇全文] [回复文章] [本篇作者:Essien5] [回信给作者] [进入讨论区] [返回顶部]
9
发信人 Essien5 (宝贝晶~), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 114545 2009), 转信
统计行数这种微型应用python上去牛刀了。。。
find . ( -name .cpp -o -name .h ) -exec cat {} ;grep -v ^$wc -l
【 在 mabuaa (jackyma) 的大作中提到 】
本人刚写的统计当前目录及子目录内所有.h和.cpp文件的非空代码行数,想请教版
上各位高手还有没有更pythonic的写法
# – coding cp936 –
……………….
–
※ 来源・水木社区 newsmth.net・[FROM 122.200.72.]
[本篇全文] [回复文章] [本篇作者:vonNeumann] [回信给作者] [进入讨论区] [返回顶部]
10
发信人 vonNeumann (冯・诺伊曼), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 114811 2009), 转信
lz贴的代码里有“– coding cp936 –”,我猜伊在windows下..
【 在 Essien5 (宝贝晶~) 的大作中提到 】
统计行数这种微型应用python上去牛刀了。。。
find . ( -name .cpp -o -name .h ) -exec cat {} ;grep -v ^$wc -l
–
※ 来源・水木社区 newsmth.net・[FROM 209.173.238.]
[本篇全文] [回复文章] [本篇作者:iLibra] [回信给作者] [进入讨论区] [返回顶部]
11
发信人 iLibra (楠~月之暗面), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 115200 2009), 转信
统计行数还比较简单,
有没有人能够写个工具
比较两个版本间增加删除修改的行数?(不包括注释和空行)
【 在 mabuaa (jackyma) 的大作中提到 】
本人刚写的统计当前目录及子目录内所有.h和.cpp文件的非空代码行数,想请教版
上各位高手还有没有更pythonic的写法
# – coding cp936 –
……………….
–
我们是丸子,我们是丸子
香香的肉丸子,香香的肉丸子,
一定会被吃掉,吃掉~
※ 来源・水木社区 httpnewsmth.net・[FROM 59.108.125.]
[本篇全文] [回复文章] [本篇作者:jigloo] [回信给作者] [进入讨论区] [返回顶部]
12
发信人 jigloo (帅过王力宏), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 115635 2009), 转信
python正好有difflib来做吧。
httpdocs.python.orglibrarydifflib.html
httpwww.oreillynet.comonlampblog200710pymotw_difflib.html
【 在 iLibra (楠~月之暗面) 的大作中提到 】
统计行数还比较简单,
有没有人能够写个工具
比较两个版本间增加删除修改的行数?(不包括注释和空行)
–
※ 来源・水木社区 httpnewsmth.net・[FROM 221.6.27.]
[本篇全文] [回复文章] [本篇作者:Andor] [回信给作者] [进入讨论区] [返回顶部]
13
发信人 Andor (柠檬汁), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 121244 2009), 转信
【 在 Essien5 (宝贝晶~) 的大作中提到 】
统计行数这种微型应用python上去牛刀了。。。
find . ( -name .cpp -o -name .h ) -exec cat {} ;grep -v ^$wc -l
他在 Windows 下。
而且完全实现楼主程序的功能得这样:
grep –include ‘.cpp’ –include ‘.h’ ^s$ . -rvc
grep –include ‘.cpp’ –include ‘.h’ ^s$ . -rvc wc -l
grep –include ‘.cpp’ –include ‘.h’ ^s$ . -rv wc -l
–
※ 来源・水木社区 newsmth.net・[FROM 220.249.41.]
[本篇全文] [回复文章] [本篇作者:mabuaa] [回信给作者] [进入讨论区] [返回顶部]
14
发信人 mabuaa (jackyma), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 133314 2009), 转信
【 在 yifanw (王轶凡) 的大作中提到 】
我一般使用glob.glob()来根据pattern找文件,和unix shell的格式是一样的:
glob.glob(.h)
返回当前目录所以.h文件的文件名
还有就是openclose文件,使用with statement可能比较好
~~~~~~~~~~~~~~~~~~~请教下这个怎么用
–
※ 来源・水木社区 httpnewsmth.net・[FROM 218.5.2.]
[本篇全文] [回复文章] [本篇作者:wyxzellux] [回信给作者] [进入讨论区] [返回顶部]
15
发信人 wyxzellux (null), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 135819 2009), 转信
httpwww.python.orgdevpepspep-0343
【 在 mabuaa (jackyma) 的大作中提到 】
我一般使用glob.glob()来根据pattern找文件,和unix shell的格式是一样的:
glob.glob(.h)
返回当前目录所以.h文件的文件名
……………….
–
※ 来源・水木社区 newsmth.net・[FROM 211.99.222.]
[本篇全文] [回复文章] [本篇作者:Purusa] [回信给作者] [进入讨论区] [返回顶部]
16
发信人 Purusa (木偶机器人), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 140031 2009), 转信
不管用哪种语言,一行里压缩过多的内容都会导致晦涩难读。所以问题不是list
comprehension而是不要在一行里使用过多的概念或者说名字。
【 在 Kone (Kneo) 的大作中提到 】
我发现list comprehension的一个结果是导致代码行变长,每行括号增多,读起来很吃力。
–
There are 10 types of people in the world; those who know binary and those who don’t.
※ 来源・水木社区 newsmth.net・[FROM 70.110.36.]
[本篇全文] [回复文章] [本篇作者:Kone] [回信给作者] [进入讨论区] [返回顶部]
17
发信人 Kone (Kneo), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 141657 2009), 转信
用Python的似乎特别喜欢在一行里面放过多的逻辑。原因之一或许就是list comprehen
sion鼓励把东西写在一起。
【 在 Purusa (木偶机器人) 的大作中提到 】
不管用哪种语言,一行里压缩过多的内容都会导致晦涩难读。所以问题不是list
comprehension而是不要在一行里使用过多的概念或者说名字。
–
※ 来源・水木社区 newsmth.net・[FROM 222.190.111.]
[本篇全文] [回复文章] [本篇作者:iLibra] [回信给作者] [进入讨论区] [返回顶部]
18
发信人 iLibra (楠~月之暗面), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 142433 2009), 转信
把程序弄的晦涩就不好了,
那就不是python是perl。。。。。
【 在 Kone (Kneo) 的大作中提到 】
用Python的似乎特别喜欢在一行里面放过多的逻辑。原因之一或许就是list comprehen
sion鼓励把东西写在一起。
–
我们是丸子,我们是丸子
香香的肉丸子,香香的肉丸子,
一定会被吃掉,吃掉~
※ 来源・水木社区 httpnewsmth.net・[FROM 59.108.125.]
[本篇全文] [回复文章] [本篇作者:Purusa] [回信给作者] [进入讨论区] [返回顶部]
19
发信人 Purusa (木偶机器人), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 142901 2009), 转信
这不能怪到python头上。我记得我小时候学BASIC的时候,什么计算机报上特别喜欢
登一行小程序,有的程序甚至就是一个小游戏。人有炫耀智力的倾向。现在教编程
的,极少有讲如何良好地组织表达程序的,以及写程序的风格。list comprehension
的本质是列表运算,即从一个列表导出另外一个列表。当这个过程过于复杂的时候,
强行用一行程序表达出来,是编程者忽略写作表现形式的结果。这也许和早期教育
中鼓励智力挑战的倾向有关。
【 在 Kone (Kneo) 的大作中提到 】
用Python的似乎特别喜欢在一行里面放过多的逻辑。原因之一或许就是list comprehen
sion鼓励把东西写在一起。
–
There are 10 types of people in the world; those who know binary and those who don’t.
※ 来源・水木社区 newsmth.net・[FROM 70.110.36.]
[本篇全文] [回复文章] [本篇作者:mirror] [回信给作者] [进入讨论区] [返回顶部]
20
发信人 mirror (相当的弱长期靠丢丢打架可怜的丢丢), 信区 Python
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 160228 2009), 转信
【 在 Kone (Kneo) 的大作中提到 】
标 题 Re 发段统计代码行数的小程序
发信站 水木社区 (Tue Jan 6 141657 2009), 转信
用Python的似乎特别喜欢在一行里面放过多的逻辑。原因之一或许就是list comprehen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~没感觉到哎。
sion鼓励把东西写在一起。
【 在 Purusa (木偶机器人) 的大作中提到 】
不管用哪种语言,一行里压缩过多的内容都会导致晦涩难读。所以问题不是list
comprehension而是不要在一行里使用过多的概念或者说名字。
–
I’m terribly sorry if there are any errors in this document.
It's 516 AM and I haven't gotten to bed yet
I'm new to WSGI
--epicRelic
Go to bed, you fool! I enjoyed this.
--Poromenos
- 上一篇 Pie版最新“骗局”,请版上男士注意。
- 下一篇 韩复榘的问题