【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记

文章目录

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

第七周 文件和数据格式化

文件的使用

文件的两种展示形态:文本文件和二进制文件,但都以二进制01形成存储
文本文件:有统一编码
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第1张图片
二进制文件:在01之上没有任何编码
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第2张图片
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第3张图片
以文本形式打开文件:
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第4张图片
以二进制形式打开文件:
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第5张图片

  • 文件的打开关闭
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第6张图片
    open:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第7张图片
  • 文件路径
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第8张图片
  • 文件的打开模式

【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第9张图片
例子:open不给模式默认rt模式 有+号可以读写文件
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第10张图片

  • 文件关闭:文件句柄.close()
    程序正常退出的时候也会关闭文件

  • 文件内容的读取
    读入一行:readline read返回的是一个大字符串
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第11张图片
    读入所有行:readlines 返回的是一个列表
    听说hint是读入的字节长度,即限定长度内的行,并不是前hint行哦
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第12张图片
    例子:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第13张图片
    这样耗费内存大,速度慢
    分批读入:read(2)读入两个字节
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第14张图片
    对于分行(每一行结束有回车)的文本文件,更多地用逐行遍历:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第15张图片
    这个列表会消耗很多内存,分行读入:
    如果保错加个encoding=“utf-8”
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第16张图片

  • 数据的文件写入
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第17张图片
    注意:writelines写入是将各个字符串元素拼接在一起写入文件的,各个元素之间没有换行也没有空格
    改变文件操作指针位置:seek
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第18张图片
    在一个程序中同时读写,使用指针位置。例子:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第19张图片

实例11:自动轨迹绘制

【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第20张图片
通过脚本(数据接口)读入数据来绘制,而不是把数据写死在代码里
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第21张图片
代码和数据贴在下面:

#根据文件数据绘制轨迹
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","")
    #1.将一行根据","进行分割为若干个字符串
    #2.map:将第一个参数的功能(去除"")作用于第二个参数(列表或集合)的每个元素
    #3.把所有字符串转化为数字的数据,存成一个列表,加入datals中(列表套列表)
    datals.append(list(map(eval,line.split(","))))
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])

300,0,144,1,0,0
300,0,144,0,1,0
300,0,144,0,0,1
300,0,144,1,1,0
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,1,0,1
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,720,0,0,0

一维数据的格式化和处理

分类:

  • 一维数据:线性方式组织,对于列表,数组,集合等概念
  • 二维数据:表格
  • 多维数据:表格考虑时间不同
  • 高维数据:仅利用最基本的二元关系展示数据间的复杂结构(键值对)

  • 一维数据的表示
    数据间有序:列表,数据间无序:集合 for循环遍历
  • 一维数据的存储
    存储分割方式:空格分割,逗号分割,特殊符号分割
    特点:不换行,不能包含分割符号
  • 一维数据的处理
    例子:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第22张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第23张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第24张图片
    join指的是将ls的元素之间增加空格符号的大字符串

二维数据的格式化和处理

  • 二维数据的表示
    使用二维列表,即=大列表套小列表=
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第25张图片
    所以表示可总结:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第26张图片
  • CSV数据存储格式:数据转换通用格式
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第27张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第28张图片
    如果数据包含逗号:看具体程序,有些两边加引号,或全面加转义符

【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第29张图片

  • 二维数据的处理
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第30张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第31张图片
    也就是对于写的每一行:各元素之间加逗号,每一行之间加回车
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第32张图片
    重点掌握join和split函数对数据的处理

模块6:wordcloud库

wordcloud是库名
WordCloud是一个词云对象
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第33张图片
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第34张图片
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第35张图片
常规方法:
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第36张图片
【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第37张图片

  • 配置对象参数
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第38张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第39张图片
    font_step是从最小字号开始根据出现频率逐渐变大的每一次变大的不进值
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第40张图片
    不知道这图片里是不是写错了,最大默认应该是200
    指定词云形状
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第41张图片
    例子:
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第42张图片
    【第七周】文件和数据格式化(读写文件、一二维数据、wordcloud库)——北理工Python慕课笔记_第43张图片

这是将一段文本通过jieba的lcut函数分割为分词列表,再用join将列表转换为用空格分隔每一个元素的长字符串,给generate

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

原理同模块,需要注释的写在代码里啦。
经弹幕提示scipy不再支持imread,得改用第三方库,所以形状就没搞了

import jieba
import wordcloud
#修改词云形状
# from scipy.mise import imread
# mask =imread("fivestar.png")
# 形状图片要求背景是白色,其他地方是形状
#读文件
f=open("关于实施乡村振兴战略的意见.txt","r",encoding="utf-8")
t=f.read()#文件读出字符串放t
f.close()
ls=jieba.lcut(t)#字符串分词为列表放ls
txt="".join(ls)#列表按空格分隔为字符串
#词云的处理
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="blue")
# (mask=mask)
w.generate(txt)
w.to_file("wordcloud.jpg")

你可能感兴趣的:(Python慕课)