8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)

2024-08-19
| 31页
| 67人阅读
| 10人下载
普通

内容正文:

第8章 文件和数据格式化 1 学习目标/Target 了解文件相关概念,能够说出文件标识与文件类型 掌握文件的基本操作,能够熟练完成文件的基本操作 熟悉文件迭代,能够归纳文件迭代具有哪些特点 2 学习目标/Target 了解数据的分类,能够区分一维数据、二维数据和多维数据的特点 熟悉数据的存储与读写方式,能够存储与读写一维数据和二维数据 熟悉多维数据的格式,能够归纳JSON和XML格式数据的特点 3 章节概述/ Summary 文件是一种广泛使用的数据载体,它可以存储各种类型的数据,如文本、图片、程序、音频等。通常,这些数据都存储在外部介质(如硬盘)中。为了更好地管理和规范这些数据,我们需要对其进行格式化处理,以便将其存储为可读取的文件。本章将对Python中的文件及数据格式化进行讲解。 4 目录/Contents 01 文件概述 文件的基本操作 文件迭代 02 03 实例:用户登录 04 数据维度与数据格式化 05 5 文件迭代 8.3 6 8.3 文件迭代 迭代是一个过程的多次重复,在Python中,实现了__iter__()方法的对象都是可迭代对象,比如序列、字典等。文件对象也是一个可迭代对象,这意味着可以在循环中通过文件对象自身遍历文件内容,示例如下: file = open("demo.txt") for line in file: # 遍历文件对象 print(line, end="") file.close() 8.3 文件迭代 file = open("test.txt") print("---第一次输出---") i = 1 for line in file: print(line, end="") i += 1 if i == 3: break print("---第二次输出---") i = 1 for line in file: print(line, end="") i += 1 if i == 3: break file.close() 假设现有文件test.txt,编写代码,在两个有先后次序关系的循环中以迭代的方式各输出两行文件内容。 实例:用户登录 8.4 9 8.4 实例:用户登录 随着互联网的迅速普及以及广泛应用,越来越多的软件需要将用户登录功能作为基本模块。然而,用户登录涉及用户的个人隐私信息,这些信息在传输时容易被黑客盗用、篡改或截获,给用户的个人隐私和安全构成威胁。 我们作为网络环境的一员,需要加强自己的信息安全意识,提高密码的复杂度和使用频率,不轻易泄漏自己的账户信息,定期更换和更新密码,从而保障自己在网络上的信息安全。 8.4 实例:用户登录 本实例要求编写程序,实现用户登录的功能,此处的用户登录分为管理员登录和普通用户登录两种情况。 8.4 实例:用户登录 根据以上功能分析,用户管理模块应包含以下文件: 标识位文件flag。该文件用于检测是否为初次使用系统,它里面的初始数据为0,在首次启动软件后系统会将数据修改为1。 管理员账户文件u_root。该文件用于保存管理员的账户信息,该账户在程序中设置。 普通用户账户文件。用于保存普通用户注册的账户,每个用户对应一个账户文件,普通用户账户文件统一存储于普通用户文件夹users中。 8.4 实例:用户登录 结合以上描述的功能设计程序,用户登录模块应包含的函数及其功能分别如下: main():程序的入口。 c_flag():标识位文件更改。 init():信息初始化。 print_login_menu():输出登录菜单。 user_select():用户类型选择。 root_login():管理员登录。 user_register():用户注册。 user_login():普通用户登录。 数据维度与数据格式化 8.5 14 8.5.1 基于维度的数据分类 1. 一维数据 一维数据是具有对等关系的一组线性数据,对应数学之中的集合和一维数组,在Python中,一维列表、一维元组和集合都属于一维数据。一维数据中的各个元素可通过逗号、空格等符号分隔。例如,我国2023年公布的新一线城市便是一组一维数据,通过逗号分隔此组数据,具体如下所示: 成都,重庆,杭州,西安,武汉,苏州,郑州,南京,天津,长沙,东莞,宁波,佛山,合肥,青岛 8.5.1 基于维度的数据分类 二维数据关联参数的数量为2,此种数据对应数学之中的矩阵和二维数组,在Python中,嵌套列表、嵌套元组等都属于二维数据。表格是日常生活中最常见的二维数据的组织形式,二维数据也称为表格数据。高三一班期中考试的成绩表就是一种表格数据, 如下图所示。 2. 二维数据 8.5.1 基于维度的数据分类 多维数据是指具有多个维度或特征的数据,它相比前两种数据而言具有更多的特征。 Python中的字典属于多维数据。多维数据在网络中十分常见,计算机中常见的多维数据形式有HTML、JSON等。 “高三一班考试成绩”:[ {“姓名”: “小红”, "语文": "124", "数学": "137", "英语": "145", "理综": "260" }; {"姓名": "小明", "语文": "116", "数学": "143", “英语”: “139”, “理综”: "263" }; …… ] 3. 多维数据 8.5.2 不同维度数据的存储与读写 数据通常存储在文件之中,为了方便后续的读写操作,数据通常需要按照约定的组织方式进行存储。一维数据呈线性排列,一般用特殊字符分隔,具体示例如下: 使用空格分隔:成都 杭州 重庆 武汉 苏州 西安 天津 使用逗号分隔:成都,杭州,重庆,武汉,苏州,西安,天津 使用&分隔:成都&杭州&重庆&武汉&苏州&西安&天津 1. 数据存储 8.5.2 不同维度数据的存储与读写 存储一维数据时可使用不同的特殊字符分隔数据元素,但有几点需要注意: 同一文件或同组文件一般使用同一分隔符分隔。 分隔数据的分隔符不应再作为数据出现。 分隔符为英文半角符号,一般不使用中文符号作为分隔符。 1. 数据存储 8.5.2 不同维度数据的存储与读写 二维数据可视为多条一维数据的集合,当二维数据只有一个元素时,这个二维数据就是一维数据。国际上通用的一维数据和二维数据的存储格式为CSV(Commae-Separeted Values,逗号分隔值)。CSV文件以纯文本形式存储表格数据,文件的每一行对应表格中的一条数据记录,每条记录由一个或多个字段组成,字段之间使用英文半角的逗号分隔。 姓名,语文,数学,英语,理综 小红,124,137,145,260 小明,116,143,139,263 小白,120,130,148,255 小兰,115,145,131,240 小刚,123,108,121,235 小华,132,100,112,210 1. 数据存储 8.5.2 不同维度数据的存储与读写 在Windows平台中, CSV文件的后缀名为.csv,此种文件可通过Excel或记事本打开。将以上示例中CSV格式的数据存储到当前目录下的score.csv文件中,通过Python程序读取该文件中的数据并以列表形式输出,具体代码如下: csv_file = open('score.csv') lines = [] for line in csv_file: line = line.replace(' ','') lines.append(line.split(',')) print(lines) csv_file.close() 2. 数据读取 8.5.2 不同维度数据的存储与读写 将一维数据和二维数据写入文件中,即按照数据的组织形式,在文件中添加新的数据。 接下来,在保存学生成绩的文件score.csv中写入每名学生的总分,效果如图所示。 3. 数据写入 多学一招:RFC 4180 CSV格式标准 RFC 4180提出了MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型对于CSV格式的标准,此标准可满足大多数应用对CSV文件的要求,具体格式规范如下: 1 2 每一行记录为单独一行,用回车换行符(\r )分隔。 文件中最后一行记录可以有回车换行符,也可以没有。 多学一招:RFC 4180 CSV格式标准 RFC 4180提出了MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型对于CSV格式的标准,此标准可满足大多数应用对CSV文件的要求,具体格式规范如下: 3 第一行为可选的标题,此行格式与普通记录格式相同。标题要包含文件记录字段对应的名称,且与记录字段一一对应。 4 包括标题在内的每行记录都存在一个或多个由半角逗号分隔的字段,整个文件中每行包含相同数量的字段;空格也是字段的一部分,不应被忽略;每一行记录最后一个字段后不需要逗号。 多学一招:RFC 4180 CSV格式标准 RFC 4180提出了MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型对于CSV格式的标准,此标准可满足大多数应用对CSV文件的要求,具体格式规范如下: 5 每个字段可用(也可以不用)英文半角双引号(“”)包裹,如果字段没有使用双引号,那么该字段内部不能出现双引号字符。 字段中若包含回车换行符、双引号或逗号,该字段需要用双引号包裹。 6 8.5.3 多维数据的格式化 二维数据是一维数据的集合,以此类推,三维数据可以是二维数据的集合,但按照此种层层嵌套的方式组织数据,多维数据的表示会非常复杂。为了直观地表示多维数据,也为了便于组织和操作,三维及以上的多维数据统一采用键值对的形式进行格式化。 8.5.3 多维数据的格式化 网络平台上传递的数据大多是高维数据,JSON是网络中常见的高维数据格式,它是一种轻量级的数据交换格式,其本质是一种格式化后的字符串,既易于人类阅读和编写,也易于机器解析和生成。JSON语法是JavaScript语法的子集,JavaScript语言中一切都是对象,因此JSON也以对象的形式表示数据。 8.5.3 多维数据的格式化 JSON格式的数据遵循以下语法规则: 数据存储在键值对key:value中,例如“姓名”: “小明”。 数据的字段由逗号分隔,例如“姓名”: “小明”, “语文”: “116”。 一个大括号保存一个JSON对象,例如{“姓名”: “小明”, “语文”: “116”}。 一个中括号保存一个数组,例如[{“姓名”: “小明”, “语文”: “116”}]。 8.5.3 多维数据的格式化 “高三一班考试成绩":[ {“姓名”: “小红", “语文": “124", “数学": “137", “英语": “145", “理综": “260"}; {“姓名”: “小明", “语文": “116", “数学": “143", “英语": “139", “理综": “263"}; …… ] 假设目前有高三一班考试成绩的JSON数据,具体如下所示。 8.5.3 多维数据的格式化 除JSON外,网络平台也会使用XML、HTML等格式组织多维数据,XML和HTML格式通过标签组织数据,例如将图书列表以XML格式存储,则具体格式如下: <高三一班考试成绩> <姓名>小红</书名><语文>124</语文><数学>137</数学><英语>145</英语><理综>260</理综> <姓名>小红</书名><语文>124</语文><数学>137</数学><英语>145</英语><理综>260</理综> …… </高三一班考试成绩> 本章小结 本章主要讲解了与文件和数据格式化相关的知识,包括计算机中文件的定义、文件的基本操作、文件迭代、文件操作模块os以及数据维度和高维数据格式化等。通过本章的学习,读者能够了解计算机中文件的意义,熟练读取、更改文件,熟悉文件操作模块,并掌握常见的数据组织形式。 本 章 小 结 31 $$

资源预览图

8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
1
8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
2
8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
3
8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
4
8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
5
8.3文件迭代(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。