python实战—数据分析与图表1(QQ群聊天数据分析) lv2

  目录

一、核心代码解释

二、代码

三、运行截图


一、核心代码解释

1、readlines() 方法

描述

readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。

如果碰到结束符 EOF 则返回空字符串。

语法

readlines() 方法语法如下:

fileObject.readlines( );

参数:

        无。

返回值

返回列表,包含所有的行。

实例

以下实例演示了 readlines() 方法的使用:

文件 runoob.txt 的内容如下:

1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com
# 打开文件
fo = open("runoob.txt", "r")
print "文件名为: ", fo.name
 
for line in fo.readlines():                          #依次读取每行  
    line = line.strip()                             #去掉每行头尾空白  
    print "读取的数据为: %s" % (line)
 
# 关闭文件
fo.close()

当您运行程序时,输出将类似于:

文件名为:  runoob.txt
读取的数据为: 1:www.runoob.com
读取的数据为: 2:www.runoob.com
读取的数据为: 3:www.runoob.com
读取的数据为: 4:www.runoob.com
读取的数据为: 5:www.runoob.com

2、replace()方法

描述

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法

replace()方法语法:

str.replace(old, new[, max])

参数

  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次

返回值

返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

实例

以下实例展示了replace()函数的使用方法:

str = "this is string example....wow!!! this is really string";
print str.replace("is", "was");
print str.replace("is", "was", 3);

当您运行程序时,输出将类似于:

thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string

二、代码

想要运行该代码还需准备一份聊天记录的txt文件,示例在资源处

import re
import matplotlib.pyplot as plt
from matplotlib import colors
import jieba
import wordcloud
# 按行读取群聊天记录(文本文件)
f = open('需要分析的文本文件.txt','r',encoding='utf-8')
fl = f.readlines()
del fl[:8]    #del删除切片(前8行数据)
fl = fl[1::3] #提取下标为1,步长为3的切片
str1 = ' '.join(fl)  #join()函数分割文本数据
#滤除无用文本
str1 = str1.replace('[QQ红包]请使用新版手机QQ查收红包。','')
str1 = str1.replace('[群签到]请使用新版QQ进行查看。','')
#通过re模块的findall将[表情]和[图片]转义成字符,然后使用replace滤除
list1 = re.findall(r'\[.+?\]', str1)
for item in list1:
    str1 = str1.replace(item, '')
#自定义颜色
color_list=['#CD853F','#DC143C','#00FF7F','#FF6347','#8B008B','#00FFFF','#0000FF','#8B0000','#FF8C00','#1E90FF','#00FF00','#FFD700','#008080','#008B8B','#8A2BE2','#228B22','#FA8072','#808080']
colormap=colors.ListedColormap(color_list) 
# 分词制作词云图
word_list = jieba.cut(str1, cut_all=True)
word = ' '.join(word_list)
Mywordcloud= wordcloud.WordCloud(mask=None, font_path='simhei.ttf',width=3000,colormap=colormap,height=2000,background_color = '#383838').generate(word)
plt.imshow(Mywordcloud)
plt.axis('off')
plt.show()

三、运行截图

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西又X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值