用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)
用python做些有意思的事——分析QQ聊天记录的更多相关文章
- 用python做些有意思的事——分析QQ聊天记录——私人订制
之前,写了这篇文章,用python提取全部群成员的发言时间,并简单做了下分析.先补充一下,针对特定单个群成员(这里以 小小白 为例)消息记录的获取. 代码比较简单,主要是正则表达式的书写.(附: ...
- 使用训练好的modle,做些有用的事(各层数据可视化)
---恢复内容开始--- 1. 加载必要的库: 2. 设置当前目录,判断模型是否训练好: 3. 利用提前训练好的模型,设置测试网络: 4. 加载测试图片,并显示: 5. 编写一个函数,将二进制的均值转 ...
- 安装 Kali Linux 后需要做的 20 件事
安装 Kali Linux 后需要做的 20 件事 本文含有我觉得有用的每一件事情.本文分为三大部分: 专门针对Kali用户 Kali Linux是来自Debian的一个特殊版本,Kali Linux ...
- 拿Proxy可以做哪些有意思的事儿
Proxy是什么 首先,我们要清楚,Proxy是什么意思,这个单词翻译过来,就是 代理.可以理解为,有一个很火的明星,开通了一个微博账号,这个账号非常活跃,回复粉丝.到处点赞之类的,但可能并不是真的由 ...
- spring扩展点之三:Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法,在spring启动后做些事情
<spring扩展点之三:Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法,在spring启动后做些事情> <服务网关zu ...
- JavaScript的Proxy可以做哪些有意思的事儿
摘要: 神奇而有趣的Proxy. 原文:拿Proxy可以做哪些有意思的事儿 作者:贾顺名 Fundebug经授权转载,版权归原作者所有. Proxy是什么 首先,我们要清楚,Proxy是什么意思,这个 ...
- 【转】用Python做股市量化策略投资数据分析
金融量化分析介绍 本文摘要; 金融量化分析介绍 1.什么是金融量化分析 2.金融量化分析可以干什么 3.为什么将python运用于金融 4.常用库简介 1.什么是金融量化分析 从标题中我们可以 ...
- 曹工说Redis源码(7)-- redis server 的周期执行任务,到底要做些啥
文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...
- 我用Python做了一个咖啡馆数据分析
在做案例前,我还想回答大家一个疑问,就是excel做数据分析可以实现Python一样的效果,那用Python的意义在哪呢? 经过这段时间学习理解,我的回答是: (https://jq.qq.com/? ...
随机推荐
- hdu-----(3746)Cyclic Nacklace(kmp)
Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 张艾迪(创始人):出现在世界224C之前的这些时间
出现在世界224C之前的这些时间 坐在大巴车上.用手塞住耳朵.繁杂的大巴车上.总会听见不喜欢听的声音.那时只有22.23岁的我.就像发明一些东西把所有不喜欢的声音都屏蔽掉.就像防火墙一样.那时候拥抱所 ...
- centOS wget的安装和使用
CentOS wget是一个从网络上自动下载文件的自由工具.它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 所谓的自动下载是指,CentOS wget可以在用户退出系统的之后在后台执行 ...
- RestSharp .net 轻量级rest客户端
RestSharp Simple REST and HTTP API Client for .NET 官网:http://restsharp.org/ GiHub: https://github.co ...
- Loadrunner 使用检查点
在使用loadrunner 测试时,比如我们在登陆时,我们希望说登录是否成功.这个时候我可以使用检查点函数. 检查登录后,页面上是否返回了某个标识,这样我们可以根据标识判断登录事务是否成功. 现在 ...
- AjaxUpload.3.5.js之ASP.NET 文件上传
一.引入js文件 <script type="text/javascript" src="/Scripts/JQuery.min.js"></ ...
- Assert断言测试
assert编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式.断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真.可以在 ...
- 利用LM神经网络和决策树去分类
# -*- coding: utf-8 -*- import pandas as pd from scipy.interpolate import lagrange from matplotlib i ...
- cf731E
题意:一个游戏,由n张贴纸组成.贴纸排成一排,并且纸条上标有数字,玩家轮流揭下m张从左到右连续的纸条(m大等2),揭下后玩家得分累加这些纸条的sum,并且在剩下纸条最左边贴上新的纸条,数值为揭下纸条的 ...
- 国内HTML5前端开发框架汇总
国内HTML5前端开发框架汇总 Dawei Cheng 程大伟... 于 星期日, 02/12/2012 - 20:53 提交 国外很有多优秀的HTML5前端开发框架相信大家都耳熟能详:JQuery ...