Python程序设计课件第6章Python文件与数据库操作_第1页
Python程序设计课件第6章Python文件与数据库操作_第2页
Python程序设计课件第6章Python文件与数据库操作_第3页
Python程序设计课件第6章Python文件与数据库操作_第4页
Python程序设计课件第6章Python文件与数据库操作_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库第6章 Python文件和数据库操作参考书目Python 程序设计文件相关的基本概念第6章 Python文件和数据库操作参考书目录文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库这里说明图片内容 目录文件相关的基本概念这里说明图片内容 文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录

2、这里说明图片内容 文件相关的基本概念目录这里说明图片内容 文件相关的基本概念1 文件与路径文件是存储在外部介质上的数据集合,通常可以长久保存,也称为磁盘文件。这种在计算机磁盘中保存的文件是通过目录来组织和管理的,目录提供了指向对应磁盘空间的路径地址。目录一般采用树状结构每个磁盘有一个根目录,它包含若干文件和子目录。子目录还可以包含下一级目录,类推下去形成多级目录结构。文件相关的基本概念1 文件与路径文件是存储在外部介质上的数据文件相关的基本概念1 文件与路径绝对路径:从根目录开始标识文件所在完整路径的方式。相对路径:相对于程序所在的目录位置建立其引用文件所在的路径。./img/photo.jp

3、gC:/website/web/img/photo.jpg相对路径:绝对路径:文件相关的基本概念1 文件与路径绝对路径:从根目录开始标识文文件相关的基本概念2 文件的编码按照文件的编码方式,可将文件分为两种类型:文本文件和二进制文件。文本文件可在Windows记事本中打开并选择编码方式保存。使用“另存为”命令,可选择ANSI、Unicode、Unicode big endian和UTF-8等编码方式。在Python 3.x版本中,文件的默认编码格式是UTF-8,字符串使用的是Unicode编码。文件相关的基本概念2 文件的编码按照文件的编码方式,可将文件文件相关的基本概念3 文本文件和二进制文

4、件的区别基于字符编码的文件,其文件的内容就是字符存取是以字符为单位的,输入/输出字符流的开始和结束由程序控制。用通用的记事本就可以浏览,具有可读性,因此,在存取时需要编/解码,从而花费一定的转换时间文本文件基于值编码的文件,存储的是二进制数据,数据是按照其实际占用的字节数存放存取是直接的值处理不需要编/解码,不存在转换时间,但通常无法直接读懂二进制文件文件相关的基本概念3 文本文件和二进制文件的区别基于字符编码文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录这里说明图片内容 文件相关的基本概念目录这里说

5、明图片内容 文件夹与目录操作1 os.path模块os.path模块主要用于文件的属性获取。函数名功能应用示例abspath(path)返回path规范化的绝对路径。abspath(test.csv)split(path)将path分割成目录和文件名二元组返回。 split(c:csvtest.csv)dirname(path)返回path的目录。dirname(c:csvtest.csv)basename(path)返回path最后的文件名。basename(c:test.csv)exists(path)判断目录是否存在。如果path存在,返回True;如果path不存在,返回False。e

6、xists(c:csvtest.csv)isabs(path) 判断path是绝对路径。如果是绝对路径,返回True,否则返回False。isabs(C:Windowssystem.ini)isfile(path)判断path是绝对路径。如果是绝对路径,返回True,否则返回False。isfile(c:boot.ini)isdir(path)判断path是一个存在的目录,则返回True。否则返回False。isdir(C:Windows)join(path1, path2, .)将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。join(C:, Windowssystem.ini)文件

7、夹与目录操作1 os.path模块os.path模块主要文件夹与目录操作2 获取与改变工作目录1获得工作目录在Python中可使用os.getcwd()函数获得当前的工作目录。语法结构:【例】获取和改变当前目录。import osprint( 当前的工作目录:,os.getcwd()os.chdir(./)print(改变后的工作目录:,os.getcwd()运行结果:C: PycharmProjectsfilesave C: PycharmProjectsos.getcwd()文件夹与目录操作2 获取与改变工作目录1获得工作目录【例】文件夹与目录操作3 目录与文件操作1.获得目录中的文件和目

8、录在Python中可使用os.listdir()函数获得指定目录中的文件和目录。os.listdir(path)2.创建目录在Python中可以使用os.mkdir()函数创建目录。其语法结构:os.mkdir(path) path:表示要创建的目录。 mode:表示目录的数字权限,该参数在Windows系统下可忽略。文件夹与目录操作3 目录与文件操作1.获得目录中的文件和目录文件夹与目录操作3 目录与文件操作3.删除目录在Python中可以使用os.rmdir()函数删除目录。其语法结构:os.rmdir(path)path:要删除的目录的路径。在使用os.rmdir删除的目录必须为空目录,

9、否则函数出错。文件夹与目录操作3 目录与文件操作3.删除目录os.rmdi文件夹与目录操作4 文件的重命名和删除1.文件重命名:rename()方法os.rename() 方法用于命名文件或目录。语法格式:os.rename(src, dst)src - 要修改的目录名dst - 修改后的目录名import os, sys# 列出目录print (目录为: %s%os.listdir(os.getcwd()# 重命名os.rename(file,file2)print (重命名成功。)# 列出重命名后的目录print (目录为: %s %os.listdir(os.getcwd()运行结果:目

10、录为: .idea, 2.txt, admin.txt重命名成功。目录为: .idea, 2.txt, admin.txt文件夹与目录操作4 文件的重命名和删除1.文件重命名:ren文件夹与目录操作4 文件的重命名和删除2.删除文件:os.remove() 方法该方法用于删除指定路径的文件。os.remove(path)path:要移除的文件路径返回值:该方法没有返回值import os, sys# 列出目录print (目录为: %s %os.listdir(os.getcwd()# 移除os.remove(2.txt)# 移除后列出目录print (移除后 : %s %os.listdir

11、(os.getcwd()运行结果:目录为:.idea, 2.txt, admin.txt移除后 : .idea, admin.txt 文件夹与目录操作4 文件的重命名和删除2.删除文件:os.r文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录这里说明图片内容 文件相关的基本概念目录这里说明图片内容 文件基本的操作1 文件的打开和关闭1.打开文件open()函数用于打开文件,该函数调用成功会返回一个文件对象。file = open(filename,mode,buffering) filename:表示待

12、打开文件的文件名。需用单引号或双引号括起来 mode:表示文件的打开模式。 buffering:表示读写文件的缓冲模式。文件基本的操作1 文件的打开和关闭1.打开文件file = 文件基本的操作1 文件的打开和关闭常用的文件打开模式有r、w、a、b、+,这些模式的含义分别如下:文件打开模式含义r以只读的方式打开文件,默认值。w以只写的方式打开文件。a以追加的方式打开文件。b以二进制方式打开文件。+以更新的方式打开文件。open()方法的应用场景:打开与新建文件以二进制形式打开文件打开文件时指定编码方式文件基本的操作1 文件的打开和关闭常用的文件打开模式有r、w文件基本的操作1 文件的打开和关闭

13、2.文件关闭关闭文件可以使用文件对象的close()方法实现。语法结构:file.close()file为打开的文件对象。f = open(data.txt)f.close()文件基本的操作1 文件的打开和关闭2.文件关闭file.cl文件基本的操作2 文件的读取与写入1. write(string)方法f.write(Our wills unite like a fortress)write语句不会自动换行,如果需要换行,则要使用换行符n2.read (size)方法:从指定文件中读取指定数据文件对象.read(size) 参数size表示设置的读取数据的字节数,若该参数缺省,则一次读取指定

14、文件中的所有数据。文件基本的操作2 文件的读取与写入1. write(stri文件基本的操作2 文件的读取与写入3.seek(offset, whence)方法:用来移动文件指针。seek(offset, whence)offset:需要移动偏移的字节数。whence:默认值为 0。表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。 f.seek(2, 0)4.close()方法:该方法实现关闭文件文件基本的操作2 文件的读取与写入3.seek(offset文件基本的操作3 按行对文件内容读写1.writelines()方法该方法需要通过制定一

15、个字符串类型的列表,该方法会将列表中的每一个元素值作为单独的一行写入文件。【例】利用writelines()方法演示文件写入操作的应用示例。fo = open(.text.txt, w)print(读写的文件名:, )seq = Hellon,life is shortn, I want to learn pythonnline = fo.writelines(seq)fo.close()运行结果:读写的文件名: .text.txt文件基本的操作3 按行对文件内容读写1.writelines文件基本的操作3 按行对文件内容读写2.readline()方法该方法返回一个字符串,用于文件指针当前位

16、置读取一行文本,即遇到行结束符停止读取文本,但读取的内容包含了结束符。【例】利用readline()方法读取“text.txt”。f = open(text.txt)while True: lines = f.readline() if lines = : break else: print(lines)print(type(lines)f.close()文件基本的操作3 按行对文件内容读写2.readline()文件基本的操作3 按行对文件内容读写3.readlines() 方法从文件指针当前的位置读取后面所有的数据,并将这些数据按行结束符分隔后,放到列表中返回。【例】利用readlines

17、()方法读取“text.txt”。f = open(text.txt,r)data = f.readlines()print(data)print(type(data)f.close()文件基本的操作3 按行对文件内容读写3.readlines(文件基本的操作4 使用fileinput对象读取大文件操作input方法返回一个fileinput对象,通过fileinput对象的相应方法可以对指定文件进行读取。fileinput.input (files=filename, inplace=False, backup=, bufsize=0, mode=r, openhook=None)files

18、:文件的路径列表,默认是stdin方式,多文件1.txt,2.txt,.;inplace:是否将标准输出的结果写回文件,默认不取代。同步修改,添加inplace=True参数即可backup:备份文件的扩展名,只指定扩展名,如.bak。bufsize:缓冲区大小,默认为0;mode:读写模式,默认为只读;openhook:该钩子用于控制打开的所有文件,比如说编码方式等;文件基本的操作4 使用fileinput对象读取大文件操作i文件基本的操作4 使用fileinput对象读取大文件操作fileinput.input典型用法:import fileinputfor line in fileinp

19、ut.input(): process(line)文件基本的操作4 使用fileinput对象读取大文件操作f文件基本的操作4 使用fileinput对象读取大文件操作1) fileinput.input() #返回能够用于for循环遍历的对象2) fileinput.filename() #返回当前文件的名称3)fileinput.lineno() #返回当前已经读取的行的数量(或者序号)4)fileinput.filelineno() #返回当前读取的行的行号5)fileinput.isfirstline() #检查当前行是否是文件的第一行6)fileinput.isstdin() #判断

20、最后一行是否从stdin中读取7)fileinput.close() #关闭队列fileinput常用函数:文件基本的操作4 使用fileinput对象读取大文件操作1文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录这里说明图片内容 文件相关的基本概念目录这里说明图片内容 处理XML格式文件的数据1 初识XML1.XML的概念XML是一种元标记语言,在XML文档中的数据都是使用字符串的形式保存下来的。XML仅仅包含数据,而对于数据的处理并不在XML的文档中。XML文档的基本组成单元是元素,在XML规范中

21、就对元素的定义进行了规定。范围包括:如何分隔标签,如何放置数据,如何放置属性等。处理XML格式文件的数据1 初识XML1.XML的概念XML处理XML格式文件的数据1 初识XML2.XML的文档结构遵守以下规则:1)所有的开始标签必须有对应的结束标签。2)元素可以嵌套,但是不能交叠。3)有且只能有一个根元素。4)属性值必须使用引号包含起来。5)一个元素不能包含两个同名属性。6)注释不能出现在标签内部。7)没有转义的“”或者“”不能出现在元素和属性的字符中。处理XML格式文件的数据1 初识XML2.XML的文档结构处理XML格式文件的数据1 初识XMLXML文件通常分为两部分:文件声明和文件主体

22、(1)文件声明(2)文件主体属性元数据属性值必须加“”或者注释 空格 多个连续空格字符不会合并为一个换行 处理XML格式文件的数据1 初识XMLXML文件通常分为两部处理XML格式文件的数据1 初识XML3.Python解析XML文件的方式DOM解析SAX解析处理XML格式文件的数据1 初识XML3.Python解析X处理XML格式文件的数据2 基于DOM的操作XML文件DOM(Document Object Model)是一个W3C的跨语言的API,用来读取和更改 XML 文档。DOM解析器在解析一个XML文档时,一次性读取整个文档,把文档中的所有元素保存在内存中的一个树结构通过DOM接口,

23、应用程序可以在任何时候访问XML文档中的任何一部分数据,因此这种利用DOM接口访问的方式也被称为随机访问处理XML格式文件的数据2 基于DOM的操作XML文件DOM处理XML格式文件的数据2 基于DOM的操作XML文件基于DOM写入XML时,可分为两种方式:新建一个全新的XML文件。在已有XML文件基础上追加一些元素信息。dom=minidom.Document()dom = parse(./school.xml)处理XML格式文件的数据2 基于DOM的操作XML文件基于D处理XML格式文件的数据2 基于DOM的操作XML文件在具体创建元素/文本结点时,需要经过如下4个步骤:创建一个新元素结点

24、createElement()创建一个文本节点createTextNode()将文本节点挂载元素结点上将元素结点挂载到其父元素上处理XML格式文件的数据2 基于DOM的操作XML文件在具体处理XML格式文件的数据3 基于SAX的操作xml文件SAX适于处理下面的问题:解析器:负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件事件处理器:负责对事件作出相应,对传递的XML数据进行处理。SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。对大型文件进行处理只需要文件的部分内容想建立自己的对象模型处理XML格式文件的数据3 基于SAX的操作

25、xml文件SAX处理XML格式文件的数据3 基于SAX的操作xml文件ContentHandler类常用的方法:startDocument()方法,功能:文档启动的时候调用。endDocument()方法,功能:解析器到达文档结尾时调用。startElement(name, attrs)方法,功能:遇到XML开始标签时调用,name是标签的名字,attrs是标签的属性值字典。endElement(name)方法,功能:遇到XML结束标签时调用。characters(content)方法:该方法在遇到字符串就自动调用。在python中使用SAX方式处理xml要先引入xml.sax中的parse函

26、数,还有xml.sax.handler中的ContentHandler函数。处理XML格式文件的数据3 基于SAX的操作xml文件Con文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录这里说明图片内容 文件相关的基本概念目录这里说明图片内容 JSON格式文件及其操作1 JSON概述JSON和XML都是互联网上数据交换的主要载体。JSON(JavaScript Object Notation, JS 对象标记)是基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用独立于编程语言的文本格

27、式来存储和表示数据,是一种轻量级的数据交换格式。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效提升网络传输效率。JavaScrip对象和JSON之间可以非常方便地转化。JSON格式文件及其操作1 JSON概述JSON和XML都是处理XML格式文件的数据2 读写JSON文件1.json.dump方法:将obj序列化为JSON格式流到fp 。json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None,

28、 indent=None, separators=None, encoding=utf-8, default=None, sort_keys=False, *kw)【例】Python写入JSON文件示例。import jsonuserdict=name:XiaoMeng,age:18,email:file=userinfo.jsonwith open(file,w,encoding=utf-8) as f: json.dump(userdict,f)处理XML格式文件的数据2 读写JSON文件1.json.d处理XML格式文件的数据2 读写JSON文件2.json.dumps方法json.du

29、mps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=utf-8, default=None, sort_keys=False, *kw)函数功能:将Python的对象数据或者是str序列化为JSON格式,具体的参数含义如dump()函数。处理XML格式文件的数据2 读写JSON文件2.json.d处理XML格式文件的数据2 读写JSON文件3.json.load方法json.load(fp

30、, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, *kw)函数功能:反序列化fp(.read()支持文件类似对象包含一个 JSON 文档)到 Python 对象 。3.json.load方法函数功能:将包含json格式的文档序列化成Python的对象,其余参数同load()函数。json.loads读取字符串,json.load读取文件。处理XML格式文件的数据2 读写JSON文件3.json.l处理XML格式文件的数据3 数据格式转化对应表JSON中的数据格式和Py

31、thon中的数据格式转化关系data1 = json.dumps() # 列表data2 = json.dumps(2) # 数字data3 = json.dumps(3) # 字符串JSONPythonObjectdictArraylistStringstrnumber (int)intnumber (real)floatTrueTrueFalseFalseNullNonedict = name: MM, age: 18 # 字典data4 = json.dumps(dict)处理XML格式文件的数据3 数据格式转化对应表JSON中的数4 利用xmltodict库实现xml与json格式转换

32、xml格式和json格式互转用到xmltodict库。安装xmltodict库:pip3 install xmltodict【例】json格式转xml格式示例。import xmltodict#json转xml函数def jsontoxml(jsonstr): #xmltodict库的unparse()json转xml xmlstr = xmltodict.unparse(jsonstr) print(xmlstr)if _name_ = _main_: json = student: course: name: Database, score: 98, info: sex: Female,

33、name: liermao , stid: 202001 jsontoxml(json)4 利用xmltodict库实现xml与json格式转换xm文件相关的基本概念文件夹与目录操作文件基本的操作处理XML格式文件的数据高阶函数JSON格式文件及其操作Python操作MySQL数据库目录这里说明图片内容 文件相关的基本概念目录这里说明图片内容 Python操作MySQL数据库1 PyMySQL的安装PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。有以下两种安装方式:经常需要将大量数据保存起来以备后续使用,数据库是一个很

34、好的解决方案使用pip安装PyMySQL,命令如:pip install PyMySQL/PyMySQL/PyMySQL,下载手动方式安装。在Python文件中引入模块:import pymysqlPython操作MySQL数据库1 PyMySQL的安装Py2 PyMySQL操作MYSQL的流程及常用对象2 PyMySQL操作MYSQL的流程及常用对象2 PyMySQL操作MYSQL的流程及常用对象1.Connection对象Connection对象即为数据库连接对象,在python中可以使用pymysql.connect()方法创建Connection对象2 PyMySQL操作MYSQL的流

35、程及常用对象1.Conn2 PyMySQL操作MYSQL的流程及常用对象Connection对象支持的方法:上述表中的事务机制可以确保数据一致性。2 PyMySQL操作MYSQL的流程及常用对象Connec事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)一个事务是一个不可分割的工作单位一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性(isolation)一个事务的执行不能被其他事务干扰。持久性(durability)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的2 PyMy

36、SQL操作MYSQL的流程及常用对象事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个2.Cursor对象 cursor称为游标,它负责执行SQL语句和获取结果。2 PyMySQL操作MYSQL的流程及常用对象2.Cursor对象2 PyMySQL操作MYSQL的流程及2 PyMySQL操作MYSQL的流程及常用对象在MySQL数据库已经启动的前提下,拥有可以连接数据库的用户名和密码,并且有操作数据,pymysql使用的步骤如下:import pymysql1.导入模块conn = pymysql.connect(host,port,user,password,database,ch

37、arset)2.创建数据库连接对象curObj = conn.cursor()3.使用数据库连接对象调用cursor()方法创建游标2 PyMySQL操作MYSQL的流程及常用对象在MySQL2 PyMySQL操作MYSQL的流程及常用对象strsql = 增删改查的SQL语句 curObj.execute(strsql,参数)4.编写SQL语句字符串,并执行SQL语句mit()curObj.close()5.提交事务并关闭游标conn.close()6.关闭数据库连接2 PyMySQL操作MYSQL的流程及常用对象strsql2 PyMySQL操作MYSQL的流程及常用对象import py

38、mysql# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4;数据库名称conn = pymysql.connect(localhost, root, 123456, jxgl)# 通过cursor()函数创建一个游标对象cursorcursor = conn.cursor()# 使用execute()方法执行SQL查询cursor.execute(SELECT VERSION()# 使用 fetchone()方法获取单条信息db_version = cursor.fetchone()print(MySQL数据库的版本号:%s % db_version)# 关闭数据库连接、conn.close()运行结果:MySQL数据库的版本号:5.7.17-log【例】pymysql使用步骤示例2 PyMySQL操作MYSQL的流程及常用对象import本章小结本章先讲解了文件的基本操作方法,包括文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论