【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

相关文章

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal