(请结合《高教版python语言程序设计冲刺试卷(含上线题库)》)
1.3.6文件和数据格式化
**
考点六(1)文件的使用:文件打开、关闭和读写
文件:数据的集合和抽象,存储在辅助存储器上的一组数据序列,可以包含任何数据内容。
文件类型:文本文件(由单一特定编码的字符组成)、二进制文件(比特0和比特1组成)。
文件的打开和关闭:
使用open()函数打开文件,返回一个操作这个文件的变量,<变量名> = open(<文件路径及文件名>, <打开模式>)
使用close()方法关闭文件,释放文件的使用授权,<变量名>.close()
文件的打开模式:
考点六(2)数据组织的维度:一维数据和二维数据
一维数据:由对等关系的有序或无序数据构成。采用线性方式组织,对应于数学中的数组或集合的概念。
二维数据:(表格数据),由关联关系数据构成。采用二维表格方式组织,对应数学的矩阵。
高维数据:键值对构成的数据形式。采用对象方式组织,可以多层嵌套。
考点六(3)一维数据的处理:表示、存储和处理
-------一维数据的表示:
ls = [‘北京’, ‘上海’, ‘天津’, ‘重庆’]
print(ls)
[‘北京’, ‘上海’, ‘天津’, ‘重庆’]
-----一维数据的存储:空格分隔、逗号分隔(CSV存储格式)、换行分隔、其他特殊符号分隔(例如分号)。
-----列表对象输出为CSV格式文件:
ls = [‘北京’, ‘上海’, ‘天津’, ‘重庆’]
f = open(“city.csv”, “w”)
f.write(“,”.join(ls)+ “\n”)
f.close()
北京,上海,天津,重庆
------一维数据的处理:从CSV文件读入一维数据,将其表示为列表对象
f = open(“city.csv”, “r”)
ls = f.read().strip(‘\n’).split(“,”)
f.close()
print(ls)
[‘北京’, ‘上海’, ‘天津’, ‘重庆’]
考点六(4)二维数据的处理:表示、存储和处理
二维数据的表示:
ls =[['指标','2014年','2015年','2016年'],
['居民消费价格指数','102','101.4','102'],
['居住','102','100.7','101.6']]
二维数据的存储:由一维数据组成,用CSV格式文件存储。每一行是一维数据,整个CSV文件是一个二维数据
/# ls代表二维列表,此处省略
f = open(“cpi.csv”, “w”)
for row in ls:
f.write(“,”.join(row)+ “\n”)
f.close()
二维数据的处理:从CSV文件读入二维数据,并将其表示为二维列表对象
f = open(“cpi.csv”, “r”)
ls = []
for line in f:
ls.append(line.strip(‘\n’).split(“,”))
f.close()
print(ls)
ls =[['指标','2014年','2015年','2016年'], ['居民消费价格指数','102','101.4','102'], ['居住','102','100.7','101.6']]
二维列表一般需要借助循环遍历实现对每个数据的处理:
/#对二维数据进行格式化输出,打印成表格形状
for row in ls:
line = “”
for item in row:
line += “{:10}\t”.format(item)
print(line)
指标 2014年 2015年 2016年
居民消费价格指数 102 101.4 102
居住 102 100.7 101.6
考点六(5)采用csv格式对一、二维数据文件的读写
逗号分隔元素的存储格式叫csv格式(逗号分隔值)
一维数据保存成csv格式后,各元素采用逗号分隔,形成一行。
二维数据由一维数据组成,csv文件的每一行都是一维数据,整个csv文件是个二维数据。
读入数据并表示为二维列表对象:
f = open("cpi.csv", "r")
ls=[]
for line in f:
ls.append(line.strip('\n').split(","))
f.close()
print(ls)
将二维列表数据写入csv文件:
# ls代表二维列表,此处省略
f = open("cpi.csv", "w")
for row in ls:
f.write(",".join(row)+ "\n")
f.close()