代碼備份

def getDiskno(line_key):
    diskno = -1
    if line_key.rfind('disk') != -1:
        if (line_key.rfind('disk')+4) == len(line_key):
            return -1
        c = line_key[line_key.rfind('disk')+4]
        cc = ord(c)#convert Char to Integer
        if cc<49 or cc>57:#not a number
            return -1     
        if (line_key.rfind('disk')+5) < len(line_key):
            t = line_key[line_key.rfind('disk')+5]
            tt = ord(t)#convert Char to Integer
            if (tt==48 or tt==49) and cc==49:
                diskno = (cc-48)*10+(tt-48)
            else:
                diskno = cc-48
        else:
            diskno = cc-48
    elif line_key.rfind('Disk') != -1:
        if (line_key.rfind('Disk')+4) == len(line_key):
            return -1
        c = line_key[line_key.rfind('Disk')+4]
        cc = ord(c)#convert Char to Integer
        if (cc < 49) or (cc > 57):#not a number
            return -1
        if (line_key.rfind('Disk')+5) < len(line_key):
            t = line_key[line_key.rfind('Disk')+5]
            tt = ord(t)#convert Char to Integer
            if (tt==48 or tt==49) and cc ==49:
                diskno = (cc-48)*10+(tt-48)
            else:
                diskno = cc-48
        else:
            diskno = cc-48
    return diskno;
print getDiskno('SizeOnDisk11')

#wipe the colon and summation
def wipeColonAndSummation(line):#quchu douhao bingqie qiuhe 
    thesum = '';
    for i in range(2,242):
        try:
            if(i==len(line)-1):
                thesum += line[i][line[i].rfind(':')+1:len(line[i])-1]+' '
            else:
                thesum += line[i][line[i].rfind(':')+1:]+' '
        except IndexError:
            thesum += '-1 '
    return thesum[:len(thesum)-1]

Path = '/media/hadoop/My Book/WorkSpace/PreProcess/AY42/2011_07_02/\
r12a03014.dg.aliyun.com'

disk = []#disk1-disk11 store the 11 disk's data,disk0 is empty
for i in range(0,12):
    contact = {}#every disk's data store in a contact which contains the key and the value
    disk.append(contact)
keys = []#keys1-keys11 store the 11 disk's key(may be unnecesary)
for i in range(0,12):
    key = []
    keys.append(key)
import os
filelist = os.listdir(Path)
for eachfile in filelist: #every loop process one M f
    if eachfile.startswith('M'):
        br = file(Path+'/'+eachfile,'r')
        reader = br.readline()
        while reader:
            diskno=-1
            line = reader.split(' ')
            if len(line) >= 4:
                if line[0].startswith('/sys/pangu/ChunkServerRole/') or line[0].startswith('/Machine/DISK/\/apsarapangu\/disk'):
                    line_key = line[0]+line[1]
                    diskno = getDiskno(line_key)
                    if diskno > 0:
                        if line[2].rfind(':') > 0:
                            if disk[diskno].has_key(line_key):
                                value = disk[diskno][line_key]
                                oneDayData = wipeColonAndSummation(line)
                                value += ' '+oneDayData
                                disk[diskno][line_key] = value
                            else:
                                oneDayData = wipeColonAndSummation(line)
                                disk[diskno][line_key] = oneDayData
                                keys[diskno].append(line_key)
            reader = br.readline()
        br.close()        
    else:
        pass#because 'pass' in the last, so it equals with 'continue'
#one day 's data is all in 'disk';the next is output
print disk[11]['/Machine/DISK/\\/apsarapangu\\/disk11/AVGQU_SZ']
print keys[11]
print len(keys[11])
View Code
相關文章
相關標籤/搜索