文件和数据格式化
一.文件的使用
1.文件的理解
-文件是存储在辅助存储器上的数据序列
-文件是数据存储的一种形式
-文件展现形态:文本文件和二进制文件
文本文件VS二进制文件
-文本文件和二进制文件只是文件的展示方式
-本质上,所有文件都是二进制形式存储
-形式上,所有文件采用两种方式展示
2.文本文件
文件是数据的抽象和集合
-由单一特定编码组成的文件,如UTF-8
-由于存在编码,也被看成是存储着的长字符串
-适用于例如:.txt文件、.py文件
文件是数据的抽象和集合
-直接由比特0和1组成,没有统一字符编码
-一般存在二进制0和1的组织结构,即文件格式
-适应于例如:.png文件、.avi文件等
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421154837972.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421154922843.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
3.文件的打开和关闭
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421155100773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421155108346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042115511633.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
打开模式
文件的打开模式 |
描述 |
‘r’ |
只读模式,默认值,如果文件不存在,返回FileNotFoundError |
‘w’ |
覆盖写模式,文件不存在则创建,存在则完全覆盖 |
‘x’ |
创建写模式,文件不存在则创建,存在则返回FileExistsError |
‘a’ |
追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
‘b’ |
二进制文件模式 |
‘t’ |
文本文件模式,默认值 |
‘+’ |
与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421160933461.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
文件关闭
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421161009953.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421161018233.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
二.数据的维度
1.一维数据
①由对等关系的有序或无序数据构成,采用线性方式组织
-对应列表、数组和集合等概念
②一维数据的表示:
如果数据间有序:使用列表类型
ls = [3.1398 ,3.1349, 3.1376]
-列表类型可以表达一维有序数据
-for循环可以遍历数据,进而对每个数据进行处理
如果数据间无序:使用集合类型
st = {3.1398, 3.1349 ,3.1376}
-集合类型可以表达一维无序数据
-for循环可以遍历数据,进而对每个数据进行处理
③一维数据的存储:
存储方式一:空格分隔
中国 美国 日本 法国 英国 意大利
-使用一个或多个空格分隔进行存储,不换行
-缺点:数据中不能存在空格
存储方式二:逗号分隔
中国,美国,日本,法国,英国,意大利
-使用英文半角逗号分隔数据进行存储,不换行
-缺点:数据中不能有英文逗号
存储方式三:其他方式
中国$美国$日本$法国$英国$意大利
-使用其他符号或符号组合分隔,建议采用特殊符号
-缺点:需要根据数据特点定义,通用性较差
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421183923372.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421183930688.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421183938193.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
2.二维数据
①由多个一维数据构成,是一维数据的组合形式
-表格是典型的二维数据
-其中,表头是二维数据的一部分
②二维数组的表示
使用列表类型
-列表类型可以表达二维数组
-使用二维列表
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421184312367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421184319957.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
CSV数据存储格式
-国际通用的一二维数据存储格式,一般.csv扩展名
-每行一个一维数据,采用逗号分隔,无空行
-Excel和一般编辑软件都可以读入或另存为csv文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421184731486.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
-如果某个元素缺失,逗号仍要保留
-二维数组的表头可以作为数据存储,也可以另行存储
-逗号为英文半角逗号,逗号与数据之间无额外空格
③二维数组的存储
-按行存,按列存都可以,具体由程序决定
-一般索引习惯:ls[row][column],先行后列
-根据一般习惯,外层列表每个元素是一行,按行存
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421190027564.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421190140471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421190146608.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)
3.高维数据
仅利用最基本的二元关系展示数据间的复杂结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042116254267.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppYW5nWXUyMDAwMTU=,size_16,color_FFFFFF,t_70)