内容正文:
6.7文件和数据单元总结
程序设计基础Python
同步精品课堂
高教版
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
能完整梳理文件操作、数据格式化、数据库使用的核心知识点。
明确各函数/模块的作用。
教学重难点
二
重点:文件的读写操作、CSV数据格式化、SQLite3数据库的基本增删改查。
难点:文件指针的定位、数据库对象的理解与使用。
“如果要把这些数据存在电脑里,怎么实现‘结构化存储’?”
导入新课
三
同学们,我们之前说过用记事本写日记、用Excel记班级成绩,这些数据都保存在文件里;手机通讯录、游戏角色信息,又都存在数据库中。如果我们写的Python程序只能在运行时处理数据,一关程序就啥都没了,那可太没用了!通过今天这节复习课,我们就来吃透“文件和数据”这个单元,学会用Python操作文件、格式化数据,还能和数据库打交道,让我们的程序真正能存数据、用数据,变成实用的小工具!
新知讲授
四
一、知识总结回顾
6.7文件和数据单元总结
文件操作
文件的读写
数据的格式化
数据库的使用
文件的打开
文件的关闭
文件的读取
文件的指针定位
文件的写入
文件类型
数据格式化
python数据库基础
数据表的创建
数据表的操作
新知讲授
四
一、文件的打开
<对象名>=open(<文件名>[,<打开模式>])
Python使用内置函数open()打开一个文件,返回一个文件对象。
open()函数的格式如下:
<文件名>必须含有扩展名,且可以包括文件路径。在Python中,文件路径的分隔符可以使用“\\”或“/”,不能使用通常的“\”作为分隔符。
<打开模式>
参数<打开模式>决定了文件的操作模式和数据类型。r\w\a\x\+\t\b
新知讲授
四
二、文件的关闭
<文件对象名>.close()
Python使用内置函数close()关闭打开的文件。
close()函数的格式如下:
新知讲授
四
三、文件的读
函数 功能
read([n]) 将文件的全部字符或前n个字符读入到字符串中
readline([n]) 将文件某行的全部字符或前n个字符读入到字符串中
readlines() 将整个文件数据内容按行读入到列表中
文件的读操作函数有哪些?
<字符串变量名>=<文件对象名>.read([n])
<字符串变量名>=<文件对象名>. .readline([n])
<字符串变量名>=<文件对象名>. readlines([n])
新知讲授
四
四、文件指针定位
函数 功能
tell() 返回当前打开文件读写指针的当前位置
seek() 设置当前打开文件读写指针的当前位置
文件指针定位操作函数有哪些?
[<变量名>=]<文件对象名>.tell()
[<变量名>=]<文件对象名>.seek(<cookie>[,<whence>])
新知讲授
四
五、文件的写
函数 功能
write(<text>) 将字符串<text>写入文件中
writelines(<lines>) 将行列表<lines>写入文件中
文件的写操作函数有哪些?
<文件对象名>.write(<text>)
<文件对象名>.writelines(<lines>)
新知讲授
四
六、数据的格式化-数据文件类型
<对象名>=open(<文件名>[,<打开模式>[,<encoding=<编码格式>>]])
在打开文本文件时,应当注意其编码格式。如若要显示文件中汉字内容,通常应用UTF-8编码格式。
带有编码格式的文件打开函数格式如下:
新知讲授
四
六、数据的格式化-数据格式化
二维数据
以表格形式组织的数据,也称之为二维表。
二维数据也是以结构化的文本文件形式保存在磁盘中,其中指将数据列用逗号分隔的文件是较为常用的数据交换格式,称之为CSV文件。
Python的csv模块主要进行reader对象和writer对象的操作。
reader对象的定义:
<对象名>=csv.reader(<文件对象名>)
新知讲授
四
六、数据的格式化-数据格式化
Python的csv模块主要进行reader对象和writer对象的操作。
reader对象的定义:
<对象名>=csv.reader(<文件对象名>)
writer对象的定义:
<对象名>=csv.writer(<文件对象名>)
writer对象的操作:
<writer对象名>.writerow(<一维列表>)
#CSV文件中写入单行
<writer对象名>.writerows(<二维列表>)
#CSV文件中写入多行
新知讲授
四
七、Python数据库应用接口
①导入相关模块
②连接数据库并获取数据连接对象
③获取游标对象
④应用游标对象的方法进行数据库相关操作
⑤关闭游标对象
Python使用数据库的一般步骤:
新知讲授
四
七、Python数据库应用接口
Python应用connect()函数创建一个数据库连接对象,connect()函数的格式如下所示:
connect(<数据库名>,<用户名>,<用户密码>)
数据库对象-connect对象
新知讲授
四
七、Python数据库应用接口
cursor对象也称为游标对象,通过cursor()函数获取数据库游标。游标的作用是进行数据操作时定位数据记录。游标对象的定义如下所示:
<connect对象名>.cursor()
数据库对象-cursor对象
新知讲授
四
七、Python数据库应用接口
数据库操作
DB-API 2.0规范支持SQL-92标准。通过execute()函数调用SQL语句进行数据库的相关操作。
execute()函数的格式如下所示:
<cursor对象名>.execute(<SQL语句>)
新知讲授
四
七、Python数据库应用接口
<cursor对象名>.close()
关闭游标对象
<connect对象名>.close()
关闭数据库连接对象
新知讲授
四
八、SQLite3模块
<connect对象名>
=sqlite3.connect(<数据库名>)
SQLite3通过connect()函数创建一个数据库连接对象
connect()函数的格式如下所示:
<cursor对象名>
=<connect对象名>.cursor()
SQLite3通过cursor()函数创建一个数据库游标对象
cursor()函数的格式如下所示:
新知讲授
四
九、数据表的创建-表结构
CREATE TABLE<数据表名>
(<列名1 数据类型[PRIMARY KEY]>[,
<列名2 数据类型[PRIMARY KEY]>][,
<列名3 数据类型[PRIMARY KEY]>][,
......])
SQL-CREATE语句格式如下:
创建数据表一般有两个步骤:建立表结构和录入表数据。
Python的sqlite3模块可以调用相关的SQL-CREATE语句创建一个数据表。
新知讲授
四
十、数据表的创建-录入表
INSERT INTO <数据表名>
(<列名1>,<列名2>,<列名3>,......)
VALUES (<值1>,<值2>,<值3>,......)
SQL-CREATE语句格式如下:
Python的sqlite3模块可以调用相关的SQL-INSERT语句录入数据表记录。
SQL-INSERT语句在<数据表>的文件尾添加一条记录,相应的<列名>赋于对应的<值>,如<列名1>=<值1>、<列名2>=<值2>、……。
新知讲授
四
十一、数据表的操作
Python的sqlite3模块通过调用SQL语句进行数据表的操作。
操作类型 操作命令 描述
数据查询 SELECT 查询满足条件的数据记录
数据定义 CREATE 创建数据库表
ALTER 修改数据表结构
DROP 删除数据库表
数据操纵 INSERT 添加数据记录
DELETE 删除数据记录
UPDATE 更新数据记录
数据表的操作语句有哪些?
新知讲授
四
十二、数据表的操作-查询
SQL-SELECT语句格式?
SELECT <查询项> from <数据表名>
[where <条件>]
[group by <分组关键字> having <条件>]
[order by <排序关键字>]
新知讲授
四
十三、数据表的操作-定义\操纵
SQL-ALTER语句格式?
ALTER TABLE <数据表名>ADD COLUMN <列名> <数据类型>
SQL-UPADAT语句格式?
ALTER TABLE <数据表名>ADD COLUMN <列名> <数据类型>
师生互动
五
一:学生分成4人小组,讨论“csv文件和数据库存数据有啥不一样?什么时候用csv,什么时候用数据库?”,5分钟后每组派代表发言。
open 函数的参数和打开模式,当场纠错并强化记忆。
csv适合简单表格数据、临时存储;数据库适合大量数据、多条件查询和数据关联。
二、在IDLE中尝试输入 f = open("test.txt", "r") ,提问:“这个代码里的 f 是什么? r 代表什么?如果想往文件里写内容,该换哪个字母?”。
随堂练习
1. Python 使用内置函数______打开一个文件。
2.Python 默认文件打开模式是______。
3.readlines () 将整个文件内容按行读取到______中。
1.答案:open
解析:Python 中open()是内置函数,专门用于打开文件并返回文件对象。
2.答案:只读模式
解析:open()函数若不指定打开模式,默认以只读文本模式打开文件。
3.答案:列表
解析:readlines()会按行读取文件内容,每一行作为列表的一个元素,最终返回字符串列表。。
六
随堂练习
4.文件指针位于文件首 (BOF) 时,函数 tell () 的值为______。
5.视频文件属于______(文本 / 二进制) 文件。
6.CSV 文件是以______为分隔符的结构化文本文件。
4. 答案:0
解析: tell() 返回文件指针的字节位置,文件首(BOF)的位置为0。
5. 答案:二进制
解析:视频文件以二进制形式存储数据,不属于文本文件范畴。
6. 答案:逗号
解析:CSV逗号分隔值文件默认以逗号作为字段分隔符,是其核心特征。
六
随堂练习
7.Python 通过______接口实现对数据库的访问。
8.sqlite3 是 Python 连接数据库的内置模块,通过使用______实现对数据库表的相关操作。
9.创建数据表一般有两个步骤:______。
7. 答案:DB-API
解析:Python通过数据库API(DB-API)标准接口实现对各类数据库的访问,保证操作的统一性。
8. 答案:SQL语句
解析:sqlite3中需通过游标对象执行SQL语句,实现对数据表的增删改查操作。
9. 答案:建立表结构和录入表数据
解析:创建数据表需先建立表结构在录入表数据。
六
随堂练习
10.0sqlite3 使用 execute () 函数执行______语句实现对数据库表数据的查询操作。
11.sqlite3 对数据库的修改必须使用______函数提交至数据库,才能实现对数据的实际操作,否则不改变数据表内容。
12.______函数返回数据表查询结果的全部记录。
10. 答案:SELECT
解析:SQL中 SELECT 语句用于从数据表中查询数据,是数据库查询的核心语句。
11. 答案:commit()
解析:sqlite3中对数据库的修改(增/删/改)需调用 commit() 提交事务,否则修改不会生效。
12. 答案:fetchall()
解析:游标对象的 fetchall() 函数会返回查询结果的所有记录,以列表形式呈现。
六
课堂小结
八
谢谢
$