7.3.2 一维、二维数据的存储与读写

7.3.2 一维、二维数据的存储与读写

数据包括文件存储和程序使用两种状态。存储不同维度的数据需要适合维度特点的文件存储格式,处理不同维度数据的程序需要使用相适应的数据类型或结构。因此,对于数据处理,需要考虑存储格式、表示与读写等问题。

1.数据存储

一维数据呈线性排列,一般用特殊字符分隔,具体示例如下。

①使用空格分隔,如:中国美国日本德国英国意大利。

②使用逗号分隔,如:中国,美国,日本,德国,英国,意大利。

注意:此处用于分隔的逗号必须是英文输入法的半角逗号,不能使用中文逗号。

③使用其他符号或符号组合分隔,如:中国 & 美国 & 日本 & 德国 & 英国 & 意大利。

注意:同一文件或同组文件一般使用同一种分隔符;分隔符不能出现在数据中;分隔符为英文半角符号,不使用中文符号作为分隔符。

二维数据可视为多条一维数据的集合,当二维数据只有一个元素时,这个二维数据就是一维数据。国际上通用的一维、二维数据存储格式为CSV(Comma Separated Values,逗号分隔值),CSV文件以纯文本形式存储表格数据,文件的每一行都对应表格中的一条数据记录,每条记录都由一个或多个字段组成,字段之间也使用逗号分隔。CSV格式的应用有一些基本规则。

①纯文本格式,通过单一编码表示字符。

②以行为单位,开头不留空行,行之间没有空行。

③每行表示一条一维数据,多行表示二维数据。

④以逗号(英文,半角)分隔每列数据,列数据为空也要保留逗号。

⑤对于表格数据,可以包含或不包含列名,包含时列名放置在文件第一行。

如学生的成绩信息可表示为score.csv:

CSV广泛应用于商业和科学中,尤其是在不同体系结构下,网络应用程序之间表格信息的转换。

以CSV格式存储的文件扩展名为.csv,可通过Windows平台的记事本或Excel等工具打开,其他操作系统平台可使用文本编辑工具打开。

Python提供了一个专门用于读写CSV的标准库,可通过import csv使用。基本的读写功能:csv.reader()、csv.writer()。

2.数据读取

从CSV文件读取内容到列表:

运行结果:

打开文件后对文件对象进行迭代,在循环中逐条获取文件中的记录,将一行作为一个列表元素。line.replace('\n',")是为了处理每行最后一个元素后面的换行符“\n”,对于数据的表达和使用来说,这个换行符是多余的,用replace()方法将其去除。line.split(',')将文件每行中用逗号分隔的数据分离成二维列表的元素。

3.数据写入

将score.csv中的内容读出来,并添加总分项,将各科成绩进行求和,添加到每个学生的信息中。