全国计算机等级考试二级教程--python语言程序设计(2018年版)第七章:数据组织的维度
声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。
作者:sumjess
一、文件的使用:
1、文件的类型:
无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。
一个文本文件a.txt,其内容为“全国计算机二级---Sumjess”,采用文本方式打开。这里需要将文本文件与python程序文件放在同一个目录中。
f = open("a.txt","rt")
print(f.readline())
f.close()
一个文本文件a.txt,其内容为“全国计算机二级---Sumjess”,采用二进制方式打开。
f = open("a.txt","rb")
print(f.readline())
f.close()
其中\xc8是十六进制数,代表字节11001000。
采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解释为字节流。由于存在编码,字符串中的一个字符由多个字节表示。
2、文件的打开和关闭:
Python对文本文件和二进制文件采用统一的操作步骤,即“打开---操作---关闭”。操作系统中的文件默认处于存储状态,首先需要将其打开,使得当前程序有权操作这个文件,打开不存在的文件系统可以创建这个文件。打开后的文件处于占用状态,此时,另一个进程不能操作这个文件。可以通过一组方法读取文件的内容或向文件写入内容,操作之后需要将文件关闭,关闭将释放对文件的控制使文件恢复成存储状态,此时,另一个进程将能够操作这个文件。
相关函数介绍:
(1)<变量名> = open(<文件路径及文件名>,<打开模式>)
open()函数有两个参数:文件名和打开模式。文件名可以是文件的实际名字,也可以是包含完整路径的名字。打开模式用于控制使用何种方式打开文件,open()函数提供7种基本的打开模式:
打开模式使用字符串的方式,表示字符串定义,单引号或者双引号均可。上述打开模式中,‘r’、‘w’、‘x’可以和‘b’、‘t’、‘+’组合使用,形成既表达读写又表达文件模式的方式。打开文件有一些常用组合,使用方法如下:
以文本方式只读打开一个文件,读入后不能对文件进行修改。
<变量名> = open(<文件名>,‘r’) 或 <变量名>open(<文件名>)
以文本方式可读写地打开一个文件,可以读入并修改文件。
<变量名> = open(<文件名>,‘r+’)
以文本方式打开一个空文件,准备写入一些内容,并保存为新文件。
<变量名> = open(<文件名>,‘w’)
以文本方式打开一个空文件或已有文件,追加形式写入一些内容,更新原文件。
<变量名> = open(<文件名>,‘a+’)
以二进制方式只读打开一个文件,读入后不能对文件进行修改。
<变量名> = open(<文件名>,‘rb’)
(2)<变量名> . close()
文件使用结束后要用close()方法关闭,释放文件的使用授权,语法形式如上
例子:
当文件关闭后,再对文件进行读写将产生I/O操作错误。
3、文件的读写:
根据打开的方式不同,文件读写也会根据文本文件或二进制打开方式有所不同。
Python语言常用的文件读取方式,以f代表文件变量。
如果文件不大,可以一次性将文件内容读入,
(1)保存到程序内部变量中。f.read()最常用的一次性读入文件的函数,其结果是一个字符串。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","r")
s = f.read()
print(s)f.close()
(2)f.readlines()也是一次性读入文件的函数,其结果是一个列表,每个元素是一个文件的一行。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","r")
s = f.readlines()
print(s)f.close()
(3)文件打开后,对文件的读写有一个读取指针,当从文件中读入内容后,读取指针奖项前进,再次读取的内容将从指针的新位置开始。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","r")qs = f.read()
print(qs)s = f.readlines()
print(s)f.close()
结合读取指针的理解,上述代码中s返回值为空,因为之前的f.read()方法已经读取了文件全部内容,读取指针在文件末尾,再次调用读取已经无法从当前位置读入内容了,因此返回值为空。
(4)f.seek()方法能够移动读取指针的位置,f.seek(0)将读取指针移动到文件开头。 f.seek(2)将读取指针移动到文件结尾。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","r")qs = f.read()
print(qs)f.seek(0)s = f.readlines()
print(s)f.close()
写入方法:
f.write(s)向文件写入字符串s,每次写入后,将会记录一个写入指针。该方法可以反复调用,在写入指针后分批写入内容,直至文件被关闭。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","w")f.write('Sumjess\n')
f.write('计算机二级\n')
f.write('一直在换行\n')
f.write('23333...\n')
f.close()
使用f.write(s)时,要显式地使用‘\n’对写入文本进行分行,如果不进行分行,每次写入的字符串会被连接起来。
f.writelines(lines)直接将列表类型的各元素连接起来写入文件f。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","w")q=['Sumjess\n','计算机二级\n','一直在换行\n','55555...\n']f.writelines(q)f.close()
上述语句运行后将在D盘目录下覆盖生成文件a.txt,与之前内容相同。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("D:\\a.txt","w")q=['Sumjess','计算机二级','一直在换行','55555...']f.writelines(q)f.close()
二、数据组织的维度:
1、一维数据:
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。一维数据非常常见,任何表现为序列或集合的内容都可以看作一维数据。
2、二维数据:
二维数据也称表格数据,有关联关系数据构成,采用二维表格方式组织,对应数学中的矩阵,常见的表格都属于二维数据。
3、高维数据:
高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。
三、一维数据的处理:
1、一维数据的表示:
一维数据是最简单的数据组织类型,由于是线性结构,在python语言中主要采用列表形式表示。采用列表类型表示一维数据的时候需要注意每个数据的数据类型。
2、一维数据的存储:
一维数据的文件存储有多种方式,总体思路是采用特殊字符分隔各数据。常用存储方法包括如下四种:
(1)采用空格分隔元素,例如:
北京 上海 天津 重庆
(2)采用逗号分隔元素,例如:
北京,上海,天津,重庆
(3)采用换行分隔元素,例如:
北京
上海
天津
重庆
(4)采用其他特殊符号元素,例如:
北京;上海;天津;重庆
这4种方法中,逗号分隔的存储格式叫作CSV格式,即逗号分隔最通用的。存储的文件一般采用.csv为扩展名。英文逗号!
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''q=['Sumjess','计算机二级','一直在换行','55555...']f = open("hello.csv","w")f.write(",".join(q)+"\n")f.close()
3、一维数据的处理:
对一维数据进行处理首先需要从CSV格式文件读入一维数据,并将其表示为列表对象。
需要注意,最后一个元素后面有一个换行符(“\n”)。需要采用字符串的strip()方法去掉尾部的换行符,进一步使用split()方法以逗号进行分割。
'''(需要注意,由于“\”是字符串中的转义符,所以表示路径时,使用“\\”或“/”代替“\”)'''f = open("hello.csv","r")a=f.read().strip('\n').split(",")f.close()print(a)
由于一维数据的的处理与列表类型操作一致,这里就不在赘述。
四、二维数据的处理:
1、二维数据的表示:
二维数据由多个一维数据构成,可以看作是一维数据的组合形式。因此,二维数据可以采用二维列表来表示,即列表的每个元素对应二维数据的一行,这个元素本身也是列表类型,其内部各元素对应这行中的各列值。
二维数据一般采用相同的数据类型存储数据,便于操作。为求统一,将数值统一表示为字符串形式。
2、二维数据的存储:
二维数据由多个一维数据构成,用CSV格式文件存储。CSV文件的每一行是一维数据,整个CSV文件是一个二维数据。
二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。
二维列表对象输出为CSV格式文件(采用遍历循环和字符串的join()方法相结合)。
3、二维数据的处理:
对二维数据进行处理首先需要从CSV格式文件读入二维数据,并将其表示为二维列表对象。借鉴一维数据读取方法,从CSV文件读入数据的方法。
二维数据处理等同于二维列表的操作。与一维列表不同,二维列表一般需要借助循环遍历实现对每个数据的处理,基本代码格式如下:
for row in Is :for item in row:<对第row行第item列元素进行处理>
全国计算机等级考试二级教程--python语言程序设计(2018年版)第七章:数据组织的维度相关推荐
- 全国计算机等级考试python教材.pdf_全国计算机等级考试二级教程Python语言程序设计(2018年版).PDF...
全国计算机等级考试二级教程Python语言程序设计(2018年版).PDF 全国计算机等级考试二级教程 Python语言程序设计 (2018年版) [第1章] 程序设计基本方法 考纲考点 n Pyth ...
- 全国计算机等级考试二级教程——c++语言程序设计答案,全国计算机等级考试二级教程--C++语言程序设计(2018年版)...
全国计算机等级考试二级教程--C++语言程序设计(2018年版) 下载 mobi epub pdf ☆☆☆☆☆ 教育部考试中心 著 下载链接在页面底部 发表于2021-05-17 类似图书 点击查看全 ...
- 2021c语言教程,全国计算机等级考试二级教程——C语言程序设计(2021年版)
全国计算机等级考试二级教程--C语言程序设计(2021年版) 出版时间:2020年11月 定 价:36.00 I S B N :9787040545340 所属分类: 考试 > 计算机考试 ...
- 全国计算机等级考试二级教程:c语言程序设计(2013年版),全国计算机等级考试二级教程:C语言程序设计(2013年版)...
全国计算机等级考试二级教程:C语言程序设计(2013年版) <全国计算机等级考试二级教程:C语言程序设计(2013年版)>根据教育部考试中心制订的<全国计算机等级考试二级C语言程序设 ...
- python中s和t是两个集合、对s|t描述正确的是_全国计算机等级考试二级教程--python语言程序设计(2018年版)第六章:组合数据类型...
声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 一.组合数据类型的基本概念: Python语 ...
- c语言基础教程吕答案,全国计算机等级考试二级教程C语言程序设计课后习题答案.docx...
精品文档 精品文档 PAGE 精品文档 <全国计算机等级考试二级教程--C语言程序设计>课后习题答案 第一章1.1EXE1.2COBJEXE1.3顺序选择循环 第二章一.选择题2.1B2. ...
- 【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第7章】
全国计算机等级考试二级教程--C语言程序设计(2021年版) 编程题答案(第7章): [7.14] 下面的fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正. int fun (int ...
- 【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第8章】
全国计算机等级考试二级教程--C语言程序设计(2021年版) 编程题答案(第8章): [8.17] 请编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数. #includ ...
- 【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第9章】
全国计算机等级考试二级教程--C语言程序设计(2021年版) 编程题答案(第9章): [9.27] 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为0的元素统计字符'0'的个 ...
- 全国计算机等级考试二级教程——c语言程序设计》,格式为doc.,《全国计算机等级考试二级教程C语言程序设计》.doc...
PAGE / NUMPAGES <全国计算机等级考试二级教程--C语言程序设计> 课后题及参考答案 第一章 程序设计基本概念 1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所 ...
最新文章
- Android 修改手机hosts域名 (绑定host域名 )
- Android平滑图片加载和缓存库Glide使用详解
- 操作系统概念学习笔记 16 内存管理(二) 段页
- pat 乙级 1027 打印沙漏(C++)
- python去掉空白行_python去掉空白行的多种实现代码
- js 自己试验 创建对象例子
- thinkphp vue后台管理系统模板_careyshop-admin 后台管理模板
- 电子签章系统研发总结
- python透视表画图_Python Pivot table透视表使用方法解析
- 【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
- vagrant up 失败的原因之一
- html 字体样式引用,CSS3 关于@font-face引用中文字体解决办法
- html页面生成easyui,Easyui 为网页创建边框布局_EasyUI 教程
- markdown快速入门之有道云笔记七牛图床与极简图床共舞
- proe常用c语言语句,带你轻松搞懂Proe条件语句
- NTFS下的USN日志文件
- 【自考】马克思主义基本原理概论—容易混淆的点
- python语言命名规则-一文轻松掌握python语言命名规范规则
- 发电运行技术类毕业论文文献都有哪些?
- 修复谷歌拼音输入法已停止运行