"零基础学编程"——统计一天24小时当中每小时发言的数量,并用Excel画出图表

一、导出QQ聊天记录

在QQ当中选中一个群,把聊天记录导出成TXT文本格式,把导出的文件命名为 chatlog.txt

QQ的聊天记录要怎么导出备份、文本/TXT模式

把导出的聊天记录,用记事本打开,另存为 utf-8 格式,覆盖保存,文件名仍然为 chatlog.txt

二、编写python程序对聊天记录进行分析

完整的代码如下,文件命名为play_per_hour.py,请与上一步的 chatlog.txt 放在同一个文件夹当中

# -*- coding:utf-8 -*-

import re
import xlsxwriter

### 读取文件
f = open('chatlog.txt')
data = f.read()
f.close()


### 抽取所有聊天记录的时间信息
# 构造正则表达式模板,并直接提取小时的子串: (\d{1,2})
pa = re.compile(r'(\d{1,2}):\d{2}:\d{2}')

# 根据正则表达式,查找刚刚设置的模式的命中次数
hour_hits_list = re.findall(pa, data)

### 统计每个小时的聊天记录数
# 一天24个小时,分别是0~23
hours_of_day = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11','12', '13', '14', '15', '16', '17', '18', '19', '20', '21','22', '23']

# 统计不同小时聊天记录的出现次数
count_per_hour_list = []
for hour in hours_of_day:
    count = 0
    for i in hour_hits_list:
        if i == hour:
            count += 1

    # 一个小时的命中次数加入到命中次数列表当中
    one_count = [hour, count]
    count_per_hour_list.append(one_count)

# 把结果写入到一个Excel文件当中
workbook = xlsxwriter.Workbook('play_per_hour.xlsx')
worksheet = workbook.add_worksheet('play_per_hour')

# 把结果一行一行地写到Excel当中
row = 0
for one_count in count_per_hour_list:
    worksheet.write(row, 0, one_count[0])
    worksheet.write(row, 1, one_count[1])
    row += 1

# 关闭Excel文件
workbook.close()

print '分析结果已经生成,请打开 play_per_hour.xlsx 查看'

参考:正则表达式-廖雪峰的官方网站

三、运行程序,生成结果

在当前文件夹当中打开一个命令行,并执行:

python play_per_hour.py

执行结束后,会生成一个Excel文件play_per_hour.xlsx

四、打开Excel 文件,生成图表

在Excel当中生成柱状图

参考:四种方法来在Excel中画出柱状图

你可能感兴趣的:("零基础学编程"——统计一天24小时当中每小时发言的数量,并用Excel画出图表)