文件和数据的格式化
文件的使用
文件的展现形态:文本文件和二进制文件
文本文件:
- 由单一特定的编码组成的文件。如utf-8编码
- 由于存在编码,也被看成是存储着的长字符串
- 例如.txt、.py文件
二进制文件:有0.1组成
文件的打开和关闭
绝对路径:从根目录开始
相对路径:从程序所在的地方开始查找。
打开模式
文件内容的读取
size表示的是字节
文件的写入
自动轨迹绘制
- 需求:根据脚本来绘制图形
- 不是写代码而是写数据绘制轨迹
- 数据脚本是自动化最重要的一步
- 步骤一:定义数据文件格式
- 步骤二:编写程序,根据文件接口解析参数绘制图形
- 步骤三:绘制数据文件
数据接口的定义:
#根据上述的绘制图形接口,形成可执行文件
#再编写代码实现
#autotracedraw.py
#绘画的初值与环境
import turtle as t
t.turtle('自动轨迹绘制')
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为内嵌函数,不需要用import调用将第一个参数的操作作用于第二个参数的内一个元素
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])
这样的绘图方式,可以改变数据文件来改变图形,而不需要重新修改代码
在本例中用二维数据应用比较方便
可以扩展接口设计,增加更多的控制接口。
一位数据的格式化和处理
一位数据的表示:
如果元素中数据时有序的:使用列表类型来表示,用for来遍历数据
如果无序,则用集合来表示数据
以为数据的存储:
1.使用一个或者多个空格分隔进行存储,不换行
缺点:数据中不能存在空格
2.使用英文半角逗号分隔进行数据的存储,不换行
缺点:数据中不能有英文逗号
3.可用其他的符号或者符号的组合
数据的处理:
从空格分隔的文件中读入数据
从特殊符号分隔的文件中读入数据
二维数据的格式化和处理
二维数据的表示:
列表类型表示:列表的元素也是一个列表
CSV数据存储格式:comma separated value以逗号分隔的值
- 国际通用的一二维数据存储格式,一般.CSV扩展名
- 每行一个一维数据,采用逗号分隔,无空格
- excel和一般的编辑软件都可以读入或者另存为CSV文件
wordcloud库的介绍词云
在cmd命令行安装:pip install wordcloud即可
- 分隔:以空格分隔单词
- 统计:单词出现次数并过滤
- 字体:根据统计配置字号
- 布局:颜色环境尺寸
最大字号和最小字号是根据单词出现的次数决定的
配置对象参数
政府工作报告的词云展示:
#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( \ width = 1000, height = 700,\ background_color = "white", font_path = "msyh.ttc" )
w.generate(txt)w
.to_file("grwordcloud.png")
生成特定形状的词云
#GovRptWordCloudv2.py
import jieba
import wordcloud
from scipy.misc import imread
mask = imread("chinamap.jpg")#读取一个图片文件
excludes = { }
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(\ width = 1000, height = 700,\ background_color = "white", font_path = "msyh.ttc", mask = mask )
w.generate(txt)
w.to_file("grwordcloudm.png")