亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1975 | 回復(fù): 0
打印 上一主題 下一主題

QQ消息記錄統(tǒng)計(jì)程序 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-07-27 15:40 |只看該作者 |倒序?yàn)g覽

               
    目前功能:分析每個(gè)發(fā)言者的發(fā)言次數(shù)并排序列出
    根據(jù)開關(guān)sInputType來決定從拷貝記錄還是導(dǎo)出記錄的形式分析。
    主文件:organizeQQMsg.py
    排序模塊:sortDict.py
---------------------------------------------------------------------------
# organizeQQMsg.py
import sys
import os
import re
import sortDict
def file2List(_uf):
    bUTF8 = 0
    f = file(_uf , 'r')
    l = f.readlines()
    if l[0][:3]=='\xef\xbb\xbf':
        bUTF8 = 1
        l[0]=l[0][3:]
        # print l[0].decode('utf8') # test the trouble line
    f.close()
    return l,bUTF8
def getFilePath():
    bValidInput = 0
    while not bValidInput:
        uInput = raw_input("input source file path:")
        if os.path.isfile ( uInput ) :
            bValidInput = 1
    return uInput
def getMsgsDictExport(aRecordRaw):
    pTitle = r'\d{4}-\d{2}-\d{2}\ \d{2}\:\d{2}\:\d{2}\ (.*)'
    cpTitle = re.compile(pTitle)
    dAuthorWords = {}
    for l in aRecordRaw:
        m = cpTitle.match(l)
        if m:
            sAuthor = m.group(1)
            if not dAuthorWords.has_key(sAuthor):
                dAuthorWords[sAuthor]=1
            dAuthorWords[sAuthor] +=1
    return dAuthorWords
def getMsgsDictHistory(aRecordRaw):
    pTitle = r'(.*)\ \d{2}\:\d{2}\:\d{2}'
    cpTitle = re.compile(pTitle)
    dAuthorWords = {}
    bTitle = 0
    bContentReading = 0
    iIdx = 0
    for i in range(len(aRecordRaw)):
        l = aRecordRaw
        if bTitle:      # read first words line
            if not bContentReading:
                bTitle = 0
                bContentReading = 1
        else :
            m = cpTitle.match(l)
            if m:           # encount title
                bTitle = 1
                bContentReading = 0
                # process prev words
                if 'aWords' in dir():
                    aWords.append(i-1)
                    del aWords
                # start this
                iIdx+=1
                sAuthor = m.group(1)
                aWords = [iIdx,i+1]
                if not dAuthorWords.has_key(sAuthor):
                    dAuthorWords[sAuthor] = []
                dAuthorWords[sAuthor].append(aWords)
            else :          # continiue reading
                pass
    aWords.append(i)
    del aWords
    return dAuthorWords
def appendElement(e ):
    aResult.append( (e.decode('utf8').encode('gbk') if bUTF8 else e).strip())
def writeResult(aResult,uInput):
    b,e = os.path.splitext(os.path.abspath(uInput))
    uOutput = b+'_stat'+e
    if 0:
        print aResult
    else:
        f = file(uOutput,'w')
        f.write('\n'.join(aResult))
        f.close()
if __name__ == "__main__":
    bModeOnlyTitle = 1  # do not display msgs
    sInputType = 'export'    # export history
    uInput = 'sample.txt'
   
    # uInput = getFilePath()
    aRecordRaw,bUTF8 = file2List(uInput)
    aResult = []
    if sInputType =='export':
        dAuthorCounts = getMsgsDictExport(aRecordRaw)
        aSorted = sortDict.getListSortDict(dAuthorCounts,1)
        for i in range(len(aSorted)):
            item = aSorted
            #print '%s [%d]' % (item[0],item[1])
            appendElement( '%-20s [%d]' % (item[0],item[1]) )
        
    elif sInputType == 'history':
        dAuthorWords = getMsgsDictHistory(aRecordRaw)
        aSorted = sortDict.getListSortDict(dAuthorWords,2)
        for e in range(len(aSorted)):
            item = aSorted[e]
            appendElement( '%-20s [%d]' % (item[0],item[2]) +('' if bModeOnlyTitle else ':') )
            if bModeOnlyTitle :
                continue
            aWords = item[1]
            for i in range(len(aWords)):
                r = aWords
                appendElement('%02d:\t%s' % (r[0],aRecordRaw[r[1]]) )
                for j in range(r[1]+1,r[2]):
                    appendElement( '\t'+aRecordRaw[j])
            appendElement( '-------------------'+os.linesep)
    writeResult(aResult,uInput)
---------------------------------------------------------------------------
# sortDict.py
import random
def getRdmDict():
    d ={}
    iCodeBase =ord('a')
    for i in range(13):
        d[chr(iCodeBase+i)] = random.randint(1,100)
    return d
def getListSortDict(d ,iMethod):
    aSort =[]
    if iMethod == 1 :
        for i in d:
            insertElement1(aSort,i,d)
    elif iMethod == 2 :
        for i in d:
            insertElement2(aSort,i,d)
    return aSort
def insertElement1(aSort,sAuthor,iTimes):       # [sAuthor,iTimes] format
    for i in range(len(aSort)):
        if iTimes <aSort[1]:
            aSort.insert(i,[sAuthor,iTimes])
            return
    aSort.append([sAuthor,iTimes])
def insertElement2(aSort,sAuthor,aWords):       # [sAuthor,aWords,iTimes] format
    iTimes = len(aWords)
    for i in range(len(aSort)):
        if iTimes <aSort[2]:
            aSort.insert(i,[sAuthor,aWords,iTimes])
            return
    aSort.append([sAuthor,aWords,iTimes])
if __name__ == '__main__':
    d = getRdmDict()
    a = getListSortDict(d)
    print d
    print a
               
               

本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/28253/showart_348206.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP