快考试了,但是有的课没有教材也没有讲义,只有老师在群里的消息记录。
QQ群里导出消息记录,发现不能导出单独的联系人。
通常解决方法
方案一:手机端查找消息记录->联系人->长截图
方案二:电脑端设置->消息管理器->搜索
优化步骤
- pc端导出聊天记录,文本格式(不可再导入的格式),导出文本格式如下:
消息记录(此消息记录为文本格式,不支持重新导入)
================================================================
消息分组:我的群聊
================================================================
消息对象:qq群名
================================================================
日期 联系人(QQ号):
聊天内容
日期 联系人(QQ号):
聊天内容
利用python的正则表达式提取日期和联系人就可以了
- 提取日期+联系人+聊天内容
import re
import os
fileName = "你的文件名.txt"
result=[] # 原始消息列表
teacher=[] # 指定人消息列表
with open(fileName,"r+",encoding="utf-8") as f:
for line in f.readlines():
result.append(line) # 先暂存列表
# 对列表进行过滤提取
# 日期 联系人(QQ号):
# 指定为指定字符串,比如2020-(.*)?联系人(QQ号),防止消息记录中出现类似信息,
# 1. 以防万一可以在for循环中if条件加上result[i+2]=='\n‘,不用担心越界,越界可以直接检查末尾信息
# 2. 同时也可以增减日期字符提取指定时间记录
pattern = "2020-(.*)?XX\(12345678\)"
for i in range(0,len(result)):
r = re.findall(pattern,result[i])
if(len(r)!=0):
teacher.append(result[i]+result[i+1])
# 保存一下消息记录
with open((os.path.join(("XX消息记录.txt"))), 'w',encoding="utf-8") as f:
for j in range(0,len(teacher)):
f.write(teacher[j])
f.write('\n')
复