当前位置: 首页 > article >正文

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()

三、运行截图


http://www.kler.cn/news/136733.html

相关文章:

  • uni-app 开发微信小程序,实现图片预览和保存
  • php流程控制
  • 【331】基于Springboot的“有光”摄影分享网站系统
  • 【ChatGPT】如何通过实例提升 ChatGPT 的回答质量
  • 【数据结构与算法】之队列详解
  • 图像处理中的图像重建
  • android生成jks文件
  • 放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表
  • 高压放大器使用方法介绍
  • 【Spring Boot】使用WebSocket协议完成来单提醒及客户催单功能
  • 【rosrun diagnostic_analysis】报错No module named rospkg | ubuntu 20.04
  • 对OpenAI CEO奥特曼突然被解雇事件的一些分析
  • DCDC同步降压控制器SCT82A30\SCT82630
  • RoCE、IB和TCP等网络的基本知识及差异对比
  • 用平板当电脑副屏(spacedesk)双端分享
  • 安装2023最新版PyCharm来开发Python应用程序
  • 【日常】爬虫技巧进阶:textarea的value修改与提交问题(以智谱清言为例)
  • Tomcat无法映射到activiti-app导致activiti无法启动页面
  • 【无标题】awdadwadw
  • 系列十二、线程池
  • 本地/笔记本/纯 cpu 部署、使用类 gpt 大模型
  • 企企通亮相广东智能装备产业发展大会:以数字化采购促进智能装备产业集群高质量发展
  • 05-Spring Boot工程中简化开发的方式Lombok和dev-tools
  • MQTT协议详解
  • LeetCode【76】最小覆盖子串
  • 中间件安全:Apache Tomcat 文件上传.(CVE-2017-12615)