Python语言程序设计——第七周:文件和数据类型格式化

文件和数据格式化

Python语言程序设计——第七周:文件和数据类型格式化_第1张图片

  • 文件的使用
  • 实例11:自动轨迹绘制
  • 一维数据的格式化和处理
  • 二维数据的格式化和处理
  • 模块6:wordcloud库的使用
  • 实例12:政府工作报告词云

文件的使用

  • 文件的类型
  • 文件的打开和关闭
  • 文件内容的读取
  • 数据的文件写入

文件的类型

文件是数据的抽象和集合

  • 文件时存储再辅助存储器上的数据序列
  • 文件时数据存储的一种形式
  • 文件展现形态:文本文件和二进制文件
文本文件 二进制文件
由单一特定编码组成的文件,如UTF-8编码 直接由比特0和1组成,没有统一字符编码
由于存在编码,也被看成时存储者的长字符串 一般存在二进制0和1的组织结构,即文件格式
适用于例如:.py文件、.txt文件 适用于例如:.png.文件、avi文件等

文本文件vs二进制文件

  • 文本文件和二进制文件只是文件的展示方式
  • 本质上,所有文件都是二进制形式存储
  • 形式上,所有文件采用两种方式展示
    Python语言程序设计——第七周:文件和数据类型格式化_第2张图片

文件的使用

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()

文件的打开和关闭

Python语言程序设计——第七周:文件和数据类型格式化_第3张图片
Python语言程序设计——第七周:文件和数据类型格式化_第4张图片
Python语言程序设计——第七周:文件和数据类型格式化_第5张图片
Python语言程序设计——第七周:文件和数据类型格式化_第6张图片Python语言程序设计——第七周:文件和数据类型格式化_第7张图片
Python语言程序设计——第七周:文件和数据类型格式化_第8张图片

文件内容的读取

操作方法 描述
.read(size=-1) 读入全部内容,如果给出参数,读入前size长度
.readline(size=-1) 读入一行内容,如果给出参数,读入该行前size长度
.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()

数据的文件写入

Python语言程序设计——第七周:文件和数据类型格式化_第9张图片
Python语言程序设计——第七周:文件和数据类型格式化_第10张图片
Python语言程序设计——第七周:文件和数据类型格式化_第11张图片
Python语言程序设计——第七周:文件和数据类型格式化_第12张图片

自动轨迹绘制

Python语言程序设计——第七周:文件和数据类型格式化_第13张图片

自动轨迹绘制举一反三

理解方法思维

  • 自动化思维:数据和功能分离,数据驱动得自动运行
  • 接口化设计:格式化设计接口,清晰明了
  • 二维数据应用:应用维度组织数据,二维数据最常用
    应用问题的扩展
  • 扩展接口设计,增加更多控制接口
  • 扩展功能设计,增加弧形等更多功能
  • 扩展应用需求,发展自动轨迹绘制到动画绘制

一维数据的格式化和处理

  • 数据组织的维度
  • 一维数据的表示
  • 一维数据的存储
  • 一维数据的处理

数据组织的维度

Python语言程序设计——第七周:文件和数据类型格式化_第14张图片
Python语言程序设计——第七周:文件和数据类型格式化_第15张图片
Python语言程序设计——第七周:文件和数据类型格式化_第16张图片
Python语言程序设计——第七周:文件和数据类型格式化_第17张图片
Python语言程序设计——第七周:文件和数据类型格式化_第18张图片
Python语言程序设计——第七周:文件和数据类型格式化_第19张图片

一维数据的表示

如果数据间有序:使用列表类型
ls=[3.1398,3.1349,3.1376]

  • 列表类型可以表达一组有序数据
  • for循环可以遍历数据,进而对每个数据进行处理
    如果数据间无序:使用集合类型
    st={3.1398,3.1349,3.1376}
  • 集合类型可以表达一组无序数据
  • for循环可以遍历数据,进而对每个数据进行处理

一维数据的存储

Python语言程序设计——第七周:文件和数据类型格式化_第20张图片
Python语言程序设计——第七周:文件和数据类型格式化_第21张图片
Python语言程序设计——第七周:文件和数据类型格式化_第22张图片

一维数据的处理

Python语言程序设计——第七周:文件和数据类型格式化_第23张图片
Python语言程序设计——第七周:文件和数据类型格式化_第24张图片
Python语言程序设计——第七周:文件和数据类型格式化_第25张图片
Python语言程序设计——第七周:文件和数据类型格式化_第26张图片
Python语言程序设计——第七周:文件和数据类型格式化_第27张图片

二维数据的格式化和处理

Python语言程序设计——第七周:文件和数据类型格式化_第28张图片
Python语言程序设计——第七周:文件和数据类型格式化_第29张图片
Python语言程序设计——第七周:文件和数据类型格式化_第30张图片
Python语言程序设计——第七周:文件和数据类型格式化_第31张图片
Python语言程序设计——第七周:文件和数据类型格式化_第32张图片
Python语言程序设计——第七周:文件和数据类型格式化_第33张图片
Python语言程序设计——第七周:文件和数据类型格式化_第34张图片
Python语言程序设计——第七周:文件和数据类型格式化_第35张图片
Python语言程序设计——第七周:文件和数据类型格式化_第36张图片
Python语言程序设计——第七周:文件和数据类型格式化_第37张图片
Python语言程序设计——第七周:文件和数据类型格式化_第38张图片
Python语言程序设计——第七周:文件和数据类型格式化_第39张图片
Python语言程序设计——第七周:文件和数据类型格式化_第40张图片
Python语言程序设计——第七周:文件和数据类型格式化_第41张图片
Python语言程序设计——第七周:文件和数据类型格式化_第42张图片
Python语言程序设计——第七周:文件和数据类型格式化_第43张图片

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>

Python语言程序设计——第七周:文件和数据类型格式化_第44张图片
Python语言程序设计——第七周:文件和数据类型格式化_第45张图片

配置对象参数

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 指定词云中字体字号的步进间隔,默认为1
w=wordcloud.WordCloud(font_step=2)
font_path 指定字体文件的路径,默认None
w=wordcloud.WordCloud(font_path="msyh.ttc")
max_words 指定词云显示的最大单词数量,默认200
w=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")

Python语言程序设计——第七周:文件和数据类型格式化_第46张图片

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")

Python语言程序设计——第七周:文件和数据类型格式化_第47张图片
:生成的图片在源代码文件.py文件所在的文件夹内。

实例12:政府工作报告词云

Python语言程序设计——第七周:文件和数据类型格式化_第48张图片
基本思路:

  • 步骤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")

Python语言程序设计——第七周:文件和数据类型格式化_第49张图片

Python语言程序设计——第七周:文件和数据类型格式化_第50张图片

政府工作报告词云举一反三

  • 了解wordcloud更多参数,扩展词云能力
  • 特色词云:设计一款属于自己的特色词云风格
  • 更多文件:用更多文件练习词云生成

你可能感兴趣的:(Python语言程序设计——第七周:文件和数据类型格式化)