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

第七周 文件和数据格式化

文件的使用

文件的两种展示形态:文本文件和二进制文件,但都以二进制01形成存储
文本文件:有统一编码
在这里插入图片描述
二进制文件:在01之上没有任何编码
在这里插入图片描述
在这里插入图片描述
以文本形式打开文件:
在这里插入图片描述
以二进制形式打开文件:
在这里插入图片描述

  • 文件的打开关闭
    在这里插入图片描述
    open:
    在这里插入图片描述
  • 文件路径
    在这里插入图片描述
  • 文件的打开模式

在这里插入图片描述
例子:open不给模式默认rt模式 有+号可以读写文件
在这里插入图片描述

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

  • 文件内容的读取
    读入一行:readline read返回的是一个大字符串
    在这里插入图片描述
    读入所有行:readlines 返回的是一个列表
    听说hint是读入的字节长度,即限定长度内的行,并不是前hint行哦
    在这里插入图片描述
    例子:
    在这里插入图片描述
    这样耗费内存大,速度慢
    分批读入:read(2)读入两个字节
    在这里插入图片描述
    对于分行(每一行结束有回车)的文本文件,更多地用逐行遍历:
    在这里插入图片描述
    这个列表会消耗很多内存,分行读入:
    如果保错加个encoding=“utf-8”
    在这里插入图片描述

  • 数据的文件写入
    在这里插入图片描述
    注意:writelines写入是将各个字符串元素拼接在一起写入文件的,各个元素之间没有换行也没有空格
    改变文件操作指针位置:seek
    在这里插入图片描述
    在一个程序中同时读写,使用指针位置。例子:
    在这里插入图片描述

实例11:自动轨迹绘制

在这里插入图片描述
通过脚本(数据接口)读入数据来绘制,而不是把数据写死在代码里
在这里插入图片描述
代码和数据贴在下面:

#根据文件数据绘制轨迹
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循环遍历
  • 一维数据的存储
    存储分割方式:空格分割,逗号分割,特殊符号分割
    特点:不换行,不能包含分割符号
  • 一维数据的处理
    例子:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    join指的是将ls的元素之间增加空格符号的大字符串

二维数据的格式化和处理

  • 二维数据的表示
    使用二维列表,即=大列表套小列表=
    在这里插入图片描述
    所以表示可总结:
    在这里插入图片描述
  • CSV数据存储格式:数据转换通用格式
    在这里插入图片描述
    在这里插入图片描述
    如果数据包含逗号:看具体程序,有些两边加引号,或全面加转义符

在这里插入图片描述

  • 二维数据的处理
    在这里插入图片描述
    在这里插入图片描述
    也就是对于写的每一行:各元素之间加逗号,每一行之间加回车
    在这里插入图片描述
    重点掌握join和split函数对数据的处理

模块6:wordcloud库

wordcloud是库名
WordCloud是一个词云对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常规方法:
在这里插入图片描述
在这里插入图片描述

  • 配置对象参数
    在这里插入图片描述
    在这里插入图片描述
    font_step是从最小字号开始根据出现频率逐渐变大的每一次变大的不进值
    在这里插入图片描述
    不知道这图片里是不是写错了,最大默认应该是200
    指定词云形状
    在这里插入图片描述
    例子:
    在这里插入图片描述
    在这里插入图片描述

这是将一段文本通过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")
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值