python 分析qq聊天记录

一、导出聊天记录.txt。

二、通过正则表达式对txt匹配得到:日期,时间,QQ号码,聊天内容四个列表。

正则表达式分析:

1、'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子。 raw string。

2、[]定义字符范围。[\d-]匹配数字和-格式的字符;\s+ 匹配多个空格。

[^\n]代表任何字符除了\n,任何字符有不同的含义,一般是不包括空白符号、换行,有些情况会包含.。

(?:x|y)非捕获分组,x 和y 任何一个都可以完成正则表达式的匹配。\) 匹配 “)”。

import re
import wordcloud as wc
import jieba
import matplotlib.pyplot as plt
from scipy.misc import imread
re_pat = r'20[\d-]{8}\s[\d:]{7,8}\s+[^\n]+(?:\d{5,11}|@\w+\.[comnetcn]{2,3})\)'  # 正则语句,匹配记录头
fn = r'./in/1.txt'
with open(fn, 'r', encoding='utf-8', errors='ignore') as reader:
    txt = reader.read()
# find 匹配出pattern对应的字符串列表
log_title_arr = re.findall(re_pat, txt)  # 记录头数组['2016-06-24 15:42:52  张某(40**21)',…]
# split根据pattern对文章进行分割,[:1]表示把后面的对话记录。把所有聊天记录保存到一个列表里,和保存qq号码的列表一一对应
log_content_arr = re.split(re_pat, txt)[1:]  # 记录内容数组['\n', '\n选修的\n\n', '\n就怕这次…]

 分别得到四个部分。(?<=\()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值