我很喜欢看sourceforge上各个项目使用的编程语言的统计情况,曾经会隔一段时间就去统计一次,但这样在sourceforge上看很累,尤其现在sourceforge访问的速度又很慢,幸好
FLOSSmole提供了sourceforge原始数据的下载,这样在本地来看就方便多了,更大的好处是可以比较当前数据和历史数据。
首先要实现一个小程序sfmerge.py来将FLOSSmole下载的多份原始数据merge:
import os
import sys
g_sf = {}
def rd_single(f):
fp = file(f)
lines = fp.readlines()
for line in lines:
if line[0]=="#": continue
line_a = line.strip ("\n").split("\t")
if g_sf.has_key(line_a[0]):
g_sf[line_a[0]] += line_a[1:]
else:
g_sf[line_a[0]] = line_a[1:] + []
def wt_merge():
for sf, sfinfo in g_sf.iteritems():
print sf,
for info in sfinfo:
print info,
print
if __name__ == '__main__':
try:
for f in sys.argv :
rd_single(f)
except:
sys.exit(1)
wt_merge()
然后就可以使用这个程序,再结合其它文本工具来查看我想看的信息了:
./sfmerge.py sfRawRanksData2007-Jun.txt sfRawProgLangData2007-Jun.txt | grep Python | sort -k 2 -n | more
上面这条命令可以统计使用Python的项目,并按排名排序,我比较关心以Python为主编程语言的项目,大概可以在前200名的项目中看到zenoss(26), pydev(44), fretsonfire(125), bitpim(140), taskcoach(178),这几个项目。而在半年前(06年12月)的数据中,只有pydev位居前200。