文件和数据格式化
- 文件的使用
- 实例11:自动轨迹绘制
- 一维数据的格式化和处理
- 二维数据的格式化和处理
- 模块6:wordcloud库的使用
- 实例12:政府工作报告词云
文件的使用
- 文件的类型
- 文件的打开和关闭
- 文件内容的读取
- 数据的文件写入
文件的类型
文件是数据的抽象和集合
- 文件时存储再辅助存储器上的数据序列
- 文件时数据存储的一种形式
- 文件展现形态:文本文件和二进制文件
文本文件 | 二进制文件 |
---|---|
由单一特定编码组成的文件,如UTF-8编码 | 直接由比特0和1组成,没有统一字符编码 |
由于存在编码,也被看成时存储者的长字符串 | 一般存在二进制0和1的组织结构,即文件格式 |
适用于例如:.py文件、.txt文件 | 适用于例如:.png.文件、avi文件等 |
文本文件vs二进制文件
- 文本文件和二进制文件只是文件的展示方式
- 本质上,所有文件都是二进制形式存储
- 形式上,所有文件采用两种方式展示
文件的使用
f.txt文件保存:“中国是一个伟大得国家!”
#文本形式打开文件
>>> tf=open("C:/Users/LJX/Desktop/f.txt","rt")
>>> print(tf.readline())
中国是一个伟大的国家!
>>> tf.close()
#二进制形式打开文件
>>> bf=open("C:/Users/LJX/Desktop/f.txt","rb")
>>> print(bf.readline())
b'\xd6\xd0\xb9\xfa\xca\xc7\xd2\xbb\xb8\xf6\xce\xb0\xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\xa3\xa1'
>>> bf.close()
文件的打开和关闭
文件内容的读取
操作方法 | 描述 |
---|---|
<f>.read(size=-1) | 读入全部内容,如果给出参数,读入前size长度 |
<f>.readline(size=-1) | 读入一行内容,如果给出参数,读入该行前size长度 |
<f>.readlines(hints=-1) | 读入文件所有行,以每行为元素形成列表,如果给出参数,读入该行前hint行 |
遍历全文本:方法一
一次读入,统一处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read()
fo.close()
遍历全文本:方法二
按数量读入,逐步处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read(2)
while txt !="":
txt=fo.read(2)
fo.close()
逐行遍历文件:方法一
一次读入,分行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()
逐行遍历文件:方法二
分行读入,逐行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo:
print(line)
fo.close()
数据的文件写入
自动轨迹绘制
自动轨迹绘制举一反三
理解方法思维
- 自动化思维:数据和功能分离,数据驱动得自动运行
- 接口化设计:格式化设计接口,清晰明了
- 二维数据应用:应用维度组织数据,二维数据最常用
应用问题的扩展 - 扩展接口设计,增加更多控制接口
- 扩展功能设计,增加弧形等更多功能
- 扩展应用需求,发展自动轨迹绘制到动画绘制
一维数据的格式化和处理
- 数据组织的维度
- 一维数据的表示
- 一维数据的存储
- 一维数据的处理
数据组织的维度
一维数据的表示
如果数据间有序:使用列表类型
ls=[3.1398,3.1349,3.1376]
- 列表类型可以表达一组有序数据
- for循环可以遍历数据,进而对每个数据进行处理
如果数据间无序:使用集合类型
st={3.1398,3.1349,3.1376} - 集合类型可以表达一组无序数据
- for循环可以遍历数据,进而对每个数据进行处理
一维数据的存储
一维数据的处理
二维数据的格式化和处理
wordcloud库常规方法
- 步骤1:配置对象参数
- 步骤2:加载词云文本
- 步骤3:输出词云文件
>>> import wordcloud
>>> c=wordcloud.WordCloud()
>>> c.generate("wordcloud by Python")
<wordcloud.wordcloud.WordCloud object at 0x000001FA6301B130>
>>> c.to_file("pywordcloud.png")
<wordcloud.wordcloud.WordCloud object at 0x000001FA6301B130>
配置对象参数
w=wordcloud.WordCloud(<参数>)
参数 | 描述 |
---|---|
width | 指定词云对象生成图片的宽度,默认400像素w=wordcloud.WordCloud(width=400) |
height | 指定词云对象生成图片的高度,默认200像素w=wordcloud.WordCloud(height=200) |
min-font_size | 指定词云中字体的最小字体,默认4号w=wordcloud.WordCloud(min_font_size=10) |
max-font_size | 指定词云中字体的最大字体,根据高度自动调节w=wordcloud.WordCloud(max_font_size=20) |
font_step | 指定词云中字体字号的步进间隔,默认为1w=wordcloud.WordCloud(font_step=2) |
font_path | 指定字体文件的路径,默认Nonew=wordcloud.WordCloud(font_path="msyh.ttc") |
max_words | 指定词云显示的最大单词数量,默认200w=wordcloud.WordCloud(max_words=20) |
stop_words | 指定词云的排除词列表,即不显示的单词列表w=wordcloud.WordCloud(stop_words={"Python"}) |
mask | 指定词云形状,默认为长方形,需要引用imread()函数from scipy.misc import imread mk=imread("pic.png") w=wordcloud.WordCloud(mask=mk) |
backgroud_color | 指定词云图片的背景颜色,默认为黑色w=wordcloud.WordCloud(backgroud_color="white") |
wordcloud应用实例
import wordcloud
txt="life is short,you need python"
w=wordcloud.WordCloud(\
background_color="white")
w.generate(txt)
w.to_file("pywcloud.png")
import jieba
import wordcloud
txt="程序设计语言是计算机能够理解和\
设计用户操作意图的一种交互体系,它按照\
特定规则组织计算机指令,使计算机能够自\
动进行各种运算处理。"
w=wordcloud.WordCloud(width=1000,\
font_path="msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywc.png")
注:生成的图片在源代码文件.py文件所在的文件夹内。
实例12:政府工作报告词云
基本思路:
- 步骤1:读取文件,分词整理
- 步骤2:设置并输出词云
- 步骤3:观察结果,优化迭代
#GovRptWordCloudv1.py
import jieba
import wordcloud
f= open("新时代中国特色社会主义.txt","r",encoding="utf-8")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc", \
width=1000,height=700,background_color="white",\
max_words=15)
w.generate(txt)
w.to_file("grwordcloud.png")
政府工作报告词云举一反三
- 了解wordcloud更多参数,扩展词云能力
- 特色词云:设计一款属于自己的特色词云风格
- 更多文件:用更多文件练习词云生成