【Python入门】——文件读写 Jieba库分词 WordCloud库词云制图

2023-12-30 06:32

本文主要是介绍【Python入门】——文件读写 Jieba库分词 WordCloud库词云制图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.文件和字符串格式化


1.1文件

文本文件

文件时数据的抽象和集合,由单一特定编码组成的文件,如UTF-8编码

二进制文件

直接由比特0和1组成,没有统一字符编码

文件处理的步骤:打开——操作——关闭

1. 打开

#<变量名> = open(<文件路径>,<打开模式>)
七种打开文件的模式
1.'r' #只读模式,如果文件不存在,返回FileNotFoundError,默认
2.'w' #覆盖写模式,文件不存在则创建,存在则完全覆盖
3.'x' #创建写模式,文件不存在则创建,存在则返回FileExistsError
4.'a' #追加写模式,文件不存在则创建,存在则在文件最后追加内容
5.'b' #二进制文件模式
6.'t' #文本文件模式,默认
7.'+' #与r/w/x/a一同使用,在原功能基础上增加同时读写功能
#文本形式只读模式打开文件
tf = open("f.txt","rt") #
print(tf.readline())
tf.close()#二进制形式只读模式打开文件
bf = open("f.txt","rb")
print(bf.readline())
bf.close()
三个"读"方法
1.read(size) #每次读取整个文件size个字符 默认全部
2.readlines(hint) #一次读取前hint,然后将文件拆成多行,返回一个列表
3.readline()  #读取一行返回一行 

2.操作

# 遍历全文本的方法
#一、一次全部读入
fname = input("输入文件名称")
fo = open(fname,"r")
txt = fo.read()
#对全文txt进行处理
fo.close()#二、利用loop每次读入一部分
fname = input("输入文件名称")
fo = open(fname,"r")
txt = fo.read(2)
while txt != "":#对txt进行处理txt = fo.read(2)
fo.close()#逐行遍历
fname = input("输入文件名称")
fo = open(fname,"r")
for line in fo.readlines():print(line)
fo.close()

3.文件写入

<f>.write(s)   #向文件写入一个字符串或字节流
#例如   f.write("中国是一个伟大的国家")
<f>.writelines(lines) #将一个元素全为字符串的列表拼接后写入文件
#例如 ls = ["中国","法国","美国"]  f.writelines(ls)
<f>.seek(offset) #改变当前文件操作指针的位置offset 0-文件开头  1-当前位置  2 - 文件结尾
# 例如
fo = open("output_fo.txt","w+")
ls = ["中国","法国","美国"]
fo.writelines(ls) #写完文件 文件指针在结尾
fo.seek(0)  #要回到开头才可以打印
for line in fo: #按行输出print(line)
fo.close()

实例:自动轨迹绘制

#使用Turtle自动轨迹绘制
#数据接口格式:
#长度  左0右1 角度 RGB颜色
import turtle as t
t.title("自动轨迹绘制")
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals = []  #建立数据列表
f = open("data.txt")
for line in f:line = line.replace("\n","")datals.append(list(map(eval,line.split(",")))) #map作用:文本依据','分隔后 每一个元素都使用eval操作
f.close()
#自动绘制
for i in range(len(datals)):t.pencolor(datals[i][3],datals[i][4],datals[i][5])t.fd(datals[i][0])if datals[i][1]:t.right(datals[i][2])else:t.left(datals[i][2])
t.done()
1.2数据格式化处理
#一维数据的写入处理 
ls = ['中国','美国','日本'] 
f = open(fname,'w')
f.writh('$'.join(ls))
f.close()
fname中的文件内容为:"中国$美国$日本" 

二维数据

CSV 用逗号分隔值(Comma-Separated Values) 数据转化的通用标准格式

用类vector<vector>方式

fo = open(fname)
ls = []
for line in fo:line = line.replace ("\n","")ls.append(line.split(","))
fo.close()#将数据吸入CSV格式的文件
ls = [[],[],[]] #二位列表
f = open(fname,'w')
for item in ls:f.write(','.join(item) + '\n')
f.close()

2.Jieba库的使用


优秀的中文分词第三方库,CMD命令中输入:

pip nstall jieba

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gxTFFvhF-1580974260137)(C:\Users\15428\AppData\Roaming\Typora\typora-user-images\image-20200204214510104.png)]

jieba分词有三种模式:

  1. 精确模式:把文本精确的切分开,不存在冗余单词
  2. 全模式:把文本中所有可能的词语都扫描出来,有冗余
  3. 搜索引擎模式:在精确模式基础上,对长词再次切分
#jieba.lcut(s)  精确模式,返回一个列表
#例如
jieba.lcut("中国是一个伟大的国家")
['中国','是','一个','伟大','的','国家']#jieba.lcut(s,cut_all = True)  全模式,返回一个列表
#例如
jieba.lcut("中国是一个伟大的国家",cut_all = True)
['中国','国是','一个','伟大','的','国家']#jieba.lcut_for_search(s)  搜索引擎模式,返回一个列表
#例如
jieba.lcut("中华人民共和国是伟大的",cut_all = True)
['中华', '中华人民', '中华人民共和国', '华人', '人民', '人民共和国', '共和', '共和国', '国是', '伟大', '的']
jieba.add_word(w)  #向分词词典增加新词w

实例:文本词频统计

#人名最多统计
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
d = {}
maxx  = -1
Str = "1"
names = s.split()
for i in names:d[i] = d.get(i,0)+1if d[i] > maxx:Str = imaxx = d[i]
print(Str)
#答案:赵敏
12.wordcloud库的使用

wordcloud是一个优秀的词云展示第三方库,命令如下:

pip install wordcloud

在这里插入图片描述

由于诸多原因,所以可能会安装失败

所以我找到了一个代替方案:https://blog.csdn.net/DCclient/article/details/89818315

wordcloud库的四个运行过程

  1. 分隔:以空格分隔单词
  2. 统计:单词出现次数并过滤 过滤掉1或2个字符的单词
  3. 字体:根据统计配置字号
  4. 布局:颜色环境尺寸
w = wordcloud.WordCloud()  #代表一个文本对应的词云
w.generate(tx) #向WordClound对象w中加载文本txt
w.to_file(filenmae) #将词云输出为图像文件,.png或.jpg格式
#参数配置
w = wordcloud.WordCloud(width=100) #设置宽度
w = wordcloud.WordCloud(height=100) #设置高度
w = wordcloud.WordCloud(min_font_size =10) #设置最小字号,默认4号
w = wordcloud.WordCloud(max_font_size =20) #设置最大字号,根据高度调节
w = wordcloud.WordCloud(font_step =2) #设置词云中字号步进间隔,默认为1
w = wordcloud.WordCloud(font_payh="msth.ttc") #设置词云中字体
w = wordcloud.WordCloud(max_words =20) #设置最大单词数量,默认200
w = wordcloud.WordCloud(stop_words ={"python"}) #设置不显示单词列表
from scipy.misc import imread
mk = imread("pic.png")  #引用imread() 设置形状
w = wordcloud.WordCloud(mask=mk) #指定词云形状,默认矩形

实例:政府工作报告词云

#新时代中国特色社会主义.py
#新时代中国特色社会主义.txt文件地址:https://www.python123.io/resources/pye/新时代中国特色社会主义.txt
import jieba as j
import wordcloud as wc
#分词
f = open("新时代中国特色社会主义.txt","r",encoding='utf-8')
txt = f.read()
f.close()
ls = j.lcut(txt)
txt = " ".join(ls)
w = wc.WordCloud(font_path="msyh.ttc",\width=1000,height=700,background_color="white",\)
w.generate(txt)
w.to_file("新时代中国.png")

在这里插入图片描述

这篇关于【Python入门】——文件读写 Jieba库分词 WordCloud库词云制图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/551996

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提