用python做些有意思的事——分析QQ聊天記錄


  #######################################

     已更新續集,戳這里

  ########################################  

  是這樣的,有位學姐呢初學python ,問我怎么處理QQ聊天記錄,當時就說了用正則,也沒去寫,現在閑着(被ajax虐哭。。。先放一放)就來簡單寫一下。

目標,統計近一個月來,QQ群在一天24個時間段的發言量。

    Step1:獲取QQ聊天記錄

    這個簡單無腦了。。。直接導出消息記錄即可。詳情參考這里。導出時,記得要保存為txt格式,並和python文件放到同一文件夾下(只是為了方便)。

    Step2:開始擼碼

    環境:python3+pycharm+xlsxwriter

    上代碼:

import re
import xlsxwriter

# 獲取24個時間段----->time_list
# 用於之后時間的分段
time_list = []
for i in range(0,24):
    # 這里的判斷用於將類似的‘8’ 轉化為 ‘08’ 便於和導出數據匹配
    if i < 10:
        i = '0'+str(i)
    else:
        i = str(i)
    time_list.append(i)
#  創建EXCEL表格並設置參數
workbook = xlsxwriter.Workbook('這里是表格名稱.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column('A:A', 5)
worksheet.set_column('B:B', 10)

# 定義一個函數,對每一個時間段進行計數
# times是正則匹配到的 “小時” 數據,在一個列表里面
def everytime(i):
    num = 0
    for time in times:
        if time == i:
            num += 1
    print(i, '--->', num)
    # 計數完畢,寫入數據,write參數為:行,列,數據
    worksheet.write(int(i), 0, str(i)+"點")
    worksheet.write(int(i), 1, num)

# 打開文件,開始匹配“小時”數據,並計數保存
# 這里記得要轉換編碼為utf-8
with open("這里是txt文件名", encoding='utf-8') as f:
    data = f.read()
    # 例如20:50:52,要匹配其中的20
    pa = re.compile(r"(\d\d):\d\d:\d\d")
    times = re.findall(pa, data)
    for i in time_list:
        everytime(i)
    # 記得關閉工作薄
    workbook.close()
    print("處理完畢,快去看看文件夾下面新建的.xlsx文件吧")

  

  代碼比較丑。。。歡迎指正。

  輸出如下:

  之后那,就要可視化了,嗯,Python的matplotlib對我來說太高大上,那就用EXCEL來吧。。。

  Step3:EXCEL可視化

  可視化,嗯,其實就是簡單做個折線圖,23333.為了折線圖方便觀察,可以適當調整一下時間的前后順序。

  我按照這個順序來的:(將凌晨數據量小的放在兩邊)

    最后:

    這是加的編程的群,我來猜測一下這個圖吧,不負責的猜測那種。。。。

    7點爬起來去上班,越到臨近中午下班越激動,中午飯后來個午睡,開始一下午昏昏欲睡的擼碼工作,終於熬到下班,吃完晚飯開始愉快的擼碼。。。沒錯還是擼碼。。

勤奮的程序員們,學習到23點,漸漸有點虛,嗯,就去睡覺啦,畢竟明天還要上班,還要擼碼。。。(以上內容,開個玩笑而已2333333)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM