首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

初次在ubuntu上使用python进行简单的统计

2012-12-18 
初次在ubuntu下使用python进行简单的统计昨天花了半天了解了python语言,今天写个程序试一下效果#-*- codin

初次在ubuntu下使用python进行简单的统计
昨天花了半天了解了python语言,今天写个程序试一下效果

#-*- coding:utf-8 -*-#统计CDN数量和比例import globimport stringinfile = glob.glob('*.sites')outfile = file('1.result','w')length = len(infile)for i in infile:temp = file(i)cnt = 0while True:line = temp.readline()if len(line) == 0:breakcnt=cnt+1outfile.write(string.ljust(i[:-6],15))outfile.write(string.ljust(str(cnt),15))outfile.write(string.ljust(str(cnt)+'%',15)+'\n')temp.close()outfile.close()#统计各网站使用的CDN数量,详细列表和排序class Record:website = ''number = 0cdn = []def __init__(self,website,number,cdn):self.website = websiteself.number = numberself.cdn = cdninfile2 = file('cntop100')outfile = file('2.result','w')li = []while True:line = infile2.readline()if len(line) == 0:breaktempnumber = 0tempcdn = []for i in infile:tempfile = open(i)while True:templine = tempfile.readline()#print templineif len(templine) == 0:breakif cmp(templine,line) == 0:tempnumber = tempnumber+1tempcdn.append(i[:-6])tempfile.close()record = Record(line,tempnumber,tempcdn)li.append(record)li.sort(lambda x,y: cmp(x.number, y.number),reverse=True)for l in li:outfile.write(string.ljust(l.website[:-1],30))outfile.write(string.ljust(str(l.number),15))if l.number != 0:for c in l.cdn:outfile.write(c)if c != l.cdn[-1]:outfile.write(',')outfile.write('\n')else:outfile.write('--\n')infile2.close()outfile.close()


#-*- coding:utf-8 -*-
这是用来解决中文乱码问题的

glob是一个有用的文件处理模块,下来好好研究一下

string.ljust(str,len)是用来控制输出格式的

python在挺多情况下挺像c的,不过自己只是初次尝试,程序写的很难看,应该有库可以使之更加简单的,好好学习,加油

热点排行