python日记——文件和数据格式化(词云为例)
一、文件的使用
-
文件的类型
1、文件是数据的抽象和集合;
2、文件展现形态:
文本文件:由单一特定编码组成的文件,可被看成是存储着的长字符串
二进制文件:直接由比特0、1组成,没有统一字符编码 -
文件的打开和关闭
1、文件的打开:<变量名> = open(<文件路径>,<打开模式>);
2、 打开模式:r(只读)、w(覆盖写)、x(创建写)、a(追加写)、b(二进制文件模式)、t(文本文件模式,默认值)、+(与r/w/x/a一同使用,在原功能基础上增加同时读写功能);
3、文件的关闭:<变量名>.close() -
文件内容的读取
1、f.read(size):读入全部内容,如果给出参数,读入前size长度;
2、f.readline(size):读入一行内容,如果给出参数,读入该行前size长度;
3、f.readlines(size):读入所有行内容,以每行为元素形成列表,如果给出参数,读入前size行。 -
数据的文件写入
1、f.write(s):向文件写入一个字符串或字节流;
2、f.writelines(s):将一个元素全为字符串的列表写入文件,元素直接拼接后写入;
3、f.seek(offset):改变当前文件操作指针的位置,offset的含义如下:0-文件开头;1-当前位置;2-文件结尾;常用于文件写入后(指针在末尾)对文件从开头(指针在开头)进行遍历。
二、数据的格式化和处理
- 数据的维度
一维、二维、多维、高维(字典类型) - 一维数据
1、一维数据的表示:如果数据间有序,使用列表;如果数据间无序,使用集合;
2、一维数据的存储方式:空格分隔、逗号分隔、特殊字符分隔(通用性较差);
3、一维数据的处理:字符串方法,.split()和.join()。 - 二维数据
1、二维数据的表示:列表类型,其中每个元素也是一个列表;
2、二维数据的处理:for循环+.split()和.join()。
三、wordcloud库的使用
- wordcloud库是优秀的词云展示第三方库;
- wordcloud库的使用说明
1、wordcloud库把词云当作一个WordCloud对象:
w = wordcloud.WordCloud(参数);
2、绘制词云的形状、尺寸和颜色等参数都可以在WordCloud对象中设定:
width:指定词云对象生成图片的宽度,默认400像素;
height:指定词云对象生成图片的高度,默认200像素;
min_font_size、max_font_size:指定词云中字体的最小、最大字号;
font_step:指定词云中字体字号的步进间隔,默认为1;
font_path:指定字体文件的路径,即修改字体类型;
max_words:指定词云中显示的最大单词数量,默认200;
stop_words:指定词云的排除词列表,即不显示的单词列表;
background_color:指定词云图片的背景颜色,默认为黑色;
mask:指定词云形状,默认为长方形,需要引用imread()函数:
from scipy.misc import imread
mk = imread('pic.png')
w = wordcloud.WordCloud(mask = mk)
- wordcloud库使用步骤
1、配置对象参数;
2、加载文本:w.generate(txt),向WordCloud对象w中加载文本txt;
3、输出图片:w.to_file(filename),将词云输出为图像文件,.png或.jpg。
四、《2020中央一号文件》词云实例
import jieba
import wordcloud
from scipy.misc import imread
mk = imread("five.jpg")#词云生成特定形状,此处为五角星
txt = open("s.txt","r",encoding="utf-8")#打开文本
ls = txt.read()#读取文本
txt.close()
lsList = jieba.lcut(ls)#对文本进行分词并返回一个列表
lstxt = " ".join(lsList)#将列表转换成元素之间空格间隔的文本
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',max_words=40, font_path="msyh.ttc",mask=mk)
w.generate(lstxt)
w.to_file("file.jpg")
运行效果:
本文内容参考于北京理工大学嵩天老师相关课程