七、文件和数据格式化

一、文件

1.概述

文件是存储在辅助存储器上的一组数据序列,可以包含任何数据类型。概念上,文件是数据的集合和抽象。文件包括文本文件和二进制文件两种类型。

文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。由于文本文件存在编码,所以,它也可以被看作是存储在磁盘上的长字符串,如一个txt格式的文本文件。

二进制文件直接由比特0和比特1组成,没有统一的字符编码,文件内部数据的组织格式与文件用途有关。二进制是信息按照非字符但有特定格式形成的文件,如png格式的图片文件、avi格式的视频文件。

二进制文件和文本文件最主要的区别在于是否有统一的字符编码。二进制文件由于没有统一的字符编码。只能当作字节流,而不能看作是字符串。

无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。
采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解析为字节流。由于存在编码,字符串中的一个字符由多个字节表示。

2.使用

(1)打开和关闭

Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”
通过 open() 函数打开一个文件,并返回一个操作这个文件的变量,语法格式如下:
<变量名> = open(<文件路径及文件名>,<打开模式>)

open() 函数有两个参数:文件名和打开模式。文件名可以是文件的实际名字,也可以是包含完整路径的名字。 打开模式用于控制使用何种方式打开文件,open() 函数提供7种基本的打开模式,如下:
在这里插入图片描述
打开模式使用字符串方式表示,根据字符串定义,单引号或者双引号均可。上述打开模式中,‘r’,‘w’,‘x’,‘a’可以和’b’,‘t’,’+'组合使用,形成既表达读写又表达文件模式的方式。

文本打开模式默认为只读打开。常用的组合如下:
“r+”——可读写打开
“a+”——追加读写打开
“rb”——二进制只读打开

文件使用结束后要用 close() 方法关闭,释放文件的使用授权,语法格式如下
<文件名>.close

注意:由于" \ " 是字符串中的转义符,所以表示路径时,使用" \ \ " 或" / " 代替

(2)读写

读取方法:
在这里插入图片描述
在这里插入图片描述
写入方法:
在这里插入图片描述
在这里插入图片描述

二、数据组织

一组数据在被计算机处理前需要进行一定的组织,表明数据之间的基本关系和逻辑,进而形成"数据的维度“。根据数据的关系不同,数据组织可分为:一维数据、二维数据和高维数据。

1.一维数据

一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。例如,中国的直辖市列表即可表示成一维数据,一维数据具有线性特点。
一维数据十分常见,任何表现为序列或集合的内容都可以看作是一维数据。

(1)表示

由于一维数据是线性结构,所以主要采用列表形式表示,但要注意每个数据的数据类型。

ls = ['北京','上海','天津','重庆']

(2)存储

一维数据的文件存储有多种方式,总体思路是采用特殊字符分隔各数据。常用存储方法包括如下4种:

a.采用空格分隔元素
北京    上海   天津   重庆
b.采用逗号分隔元素
北京,上海,天津,重庆
c.采用换行分隔元素
北京
上海
天津
重庆
d.采用特殊符号分隔,以分号分隔为例:
北京;上海;天津;重庆

其中,逗号分隔的存储格式叫做CSV格式,它是一种通用的、相对简单的文件格式,在商业和科学上广泛应用,大部分编辑器都支持直接读入或保存文件为CSV格式,如Windows平台上的记事本或微软Office Excel等。存储的文件一般采用.csv拓展名。

2.二维数据

二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。

(1)表示

二维数据由多个一维数据构成,可以看作是一维数据的组合形式。因此,二维数据可以采用二维列表来表示,即列表的每个元素对应二维数据的一行,这个元素本身也是列表类型,其内部各元素对应这行中的各列值。

(2)存储

二维数据由一维数据组成,用CSV格式文件存储。CSV文件的每一行是一维数据,整个CSV文件是一个二维数据。
二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。
二维对象输出为CSV格式文件方法如下:(采用遍历循环和字符串的join()方法结合)

# ls代表二维列表,此处省略
f = open("cpi.csv","w")
for row in ls:
	f.write(",".join(row) + "\n")
f.close()

(3)处理

对二维数据进行处理首先需要从CSV格式文件读入二维数据,并将其表示为二维列表对象。从CSV文件读入数据的方法如下:

f = open ("cpi.csv","r")
ls = []
for line in f:
	ls.append(line.strip('\n').split(","))
f.close()
print(ls)

二维数据处理等同于二维列表的操作。与一维列表不同,二维列表一般需要借助循环遍历实现对每个数据的处理,基本代码格式如下:

for row in ls:
	for item in row:
		<对第row行第itme列元素进行处理>

3.高维数据

高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。
高维数据在Web系统中十分常见,作为当今Internet组织内容的主要方式,高维数据衍生出HTML,XML,JSON等具体数据组织的语法结构。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值