1、 文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库第6章 Python文件和数据库操作参考书目Python 程序设计目录 文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库这里说明图片内容 文件相关的基本概
2、念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库目录这里说明图片内容 文件相关的基本概念1 文件与路径文件是存储在外部介质上的数据集合,通常可以长久保存,也称为磁盘文件。这种在计算机磁盘中保存的文件是通过目录来组织和管理的,目录提供了指向对应磁盘空间的路径地址。目录一般采用树状结构每个磁盘有一个根目录,它包含若干文件和子目录。子目录还可以包含下一级目录,类推下去形成多级目录结构。文件相关的基本概念1 文件与路径绝对
3、路径:从根目录开始标识文件所在完整路径的方式。相对路径:相对于程序所在的目录位置建立其引用文件所在的路径。./img/photo.jpgC:/website/web/img/photo.jpg相相对路径:对路径:绝对路径:绝对路径:文件相关的基本概念2 文件的编码按照文件的编码方式,可将文件分为两种类型:文本文件和二进制文件。文本文件可在Windows记事本中打开并选择编码方式保存。使用“另存为”命令,可选择ANSI、Unicode、Unicode big endian和UTF-8等编码方式。在Python 3.x版本中,文件的默认编码格式是UTF-8,字符串使用的是Unicode编码。文件相
4、关的基本概念3 文本文件和二进制文件的区别 基于字符编码的文件,其文件的内容就是字符 存取是以字符为单位的,输入/输出字符流的开始和结束由程序控制。用通用的记事本就可以浏览,具有可读性,因此,在存取时需要编/解码,从而花费一定的转换时间文本文件 基于值编码的文件,存储的是二进制数据,数据是按照其实际占用的字节数存放 存取是直接的值处理 不需要编/解码,不存在转换时间,但通常无法直接读懂二进制文件 文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操
5、作 Python操作操作MySQL数据库数据库目录这里说明图片内容 文件夹与目录操作1 os.path模块os.pathos.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(p
6、ath)判断目录是否存在。如果path存在,返回True;如果path不存在,返回False。exists(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,.)将多个路径组合后返回,第
7、一个绝对路径之前的参数将被忽略。join(C:,Windowssystem.ini)文件夹与目录操作2 获取与改变工作目录1获得工作目录在Python中可使用os.getcwd()函数获得当前的工作目录。语法结构:【例】获取和改变当前目录。import osprint(当前的工作目录:,os.getcwd()os.chdir(./)print(改变后的工作目录:,os.getcwd()运行结果:C:PycharmProjectsfilesave C:PycharmProjectsos.getcwd()文件夹与目录操作3 目录与文件操作1.获得目录中的文件和目录在Python中可使用os.lis
8、tdir()函数获得指定目录中的文件和目录。os.listdir(path)2.创建目录在Python中可以使用os.mkdir()函数创建目录。其语法结构:os.mkdir(path)path:表示要创建的目录。mode:表示目录的数字权限,该参数在Windows系统下可忽略。文件夹与目录操作3 目录与文件操作3.删除目录在Python中可以使用os.rmdir()函数删除目录。其语法结构:os.rmdir(path)path:要删除的目录的路径。在使用os.rmdir删除的目录必须为空目录,否则函数出错。文件夹与目录操作4 文件的重命名和删除1.文件重命名:rename()方法os.ren
9、ame()方法用于命名文件或目录。语法格式: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()运行结果:目录为:.idea,2.txt,admin.txt重命名成功。目录为:.idea,2.txt,admin.txt文件夹与目录操作4 文件的重命名和删除2.删除文件:os.remove()方法该
10、方法用于删除指定路径的文件。os.remove(path)path:要移除的文件路径 返回值:该方法没有返回值import os,sys#列出目录print(目录为:%s%os.listdir(os.getcwd()#移除os.remove(2.txt)#移除后列出目录print(移除后:%s%os.listdir(os.getcwd()运行结果:目录为:.idea,2.txt,admin.txt移除后:.idea,admin.txt 文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数
11、 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库目录这里说明图片内容 文件基本的操作1 文件的打开和关闭1.打开文件open()函数用于打开文件,该函数调用成功会返回一个文件对象。file=open(filename,mode,buffering)filename:表示待打开文件的文件名。需用单引号或双引号括起来 mode:表示文件的打开模式。buffering:表示读写文件的缓冲模式。文件基本的操作1 文件的打开和关闭常用的文件打开模式有r、w、a、b、+,这些模式的含义分别如下:文件打开模式文件打开模式含义含义r以只读的方式打开文件,默认值。w以只写的
12、方式打开文件。a以追加的方式打开文件。b以二进制方式打开文件。+以更新的方式打开文件。open()方法的应用场景:打开与新建文件以二进制形式打开文件打开文件时指定编码方式文件基本的操作1 文件的打开和关闭2.文件关闭关闭文件可以使用文件对象的close()方法实现。语法结构:file.close()file为打开的文件对象。f=open(data.txt)f.close()文件基本的操作2 文件的读取与写入1.write(string)方法f.write(Our wills unite like a fortress)write语句不会自动换行,如果需要换行,则要使用换行符n2.read(si
13、ze)方法:从指定文件中读取指定数据文件对象.read(size)参数size表示设置的读取数据的字节数,若该参数缺省,则一次读取指定文件中的所有数据。文件基本的操作2 文件的读取与写入3.seek(offset,whence)方法:用来移动文件指针。seek(offset,whence)offset:需要移动偏移的字节数。whence:默认值为 0。表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。f.seek(2,0)4.close()方法:该方法实现关闭文件文件基本的操作3 按行对文件内容读写1.writelines()方法该方法需要通过
14、制定一个字符串类型的列表,该方法会将列表中的每一个元素值作为单独的一行写入文件。【例】利用writelines()方法演示文件写入操作的应用示例。fo=open(.text.txt,w)print(读写的文件名:,fo.name)seq=Hellon,life is shortn,I want to learn pythonnline=fo.writelines(seq)fo.close()运行结果:读写的文件名:.text.txt文件基本的操作3 按行对文件内容读写2.readline()方法该方法返回一个字符串,用于文件指针当前位置读取一行文本,即遇到行结束符停止读取文本,但读取的内容包含
15、了结束符。【例】利用readline()方法读取“text.txt”。f=open(text.txt)while True:lines=f.readline()if lines=:break else:print(lines)print(type(lines)f.close()文件基本的操作3 按行对文件内容读写3.readlines()方法从文件指针当前的位置读取后面所有的数据,并将这些数据按行结束符分隔后,放到列表中返回。【例】利用readlines()方法读取“text.txt”。f=open(text.txt,r)data=f.readlines()print(data)print(t
16、ype(data)f.close()文件基本的操作4 使用fileinput对象读取大文件操作input方法返回一个fileinput对象,通过fileinput对象的相应方法可以对指定文件进行读取。fileinput.input(files=filename,inplace=False,backup=,bufsize=0,mode=r,openhook=None)files:文件的路径列表,默认是stdin方式,多文件1.txt,2.txt,.;inplace:是否将标准输出的结果写回文件,默认不取代。同步修改,添加inplace=True参数即可 backup:备份文件的扩展名,只指定扩展
17、名,如.bak。bufsize:缓冲区大小,默认为0;mode:读写模式,默认为只读;openhook:该钩子用于控制打开的所有文件,比如说编码方式等;文件基本的操作4 使用fileinput对象读取大文件操作fileinput.input典型用法:import fileinputfor line in fileinput.input():process(line)文件基本的操作4 使用fileinput对象读取大文件操作1)fileinput.input()#返回能够用于for循环遍历的对象2)fileinput.filename()#返回当前文件的名称3)fileinput.lineno(
18、)#返回当前已经读取的行的数量(或者序号)4)fileinput.filelineno()#返回当前读取的行的行号5)fileinput.isfirstline()#检查当前行是否是文件的第一行6)fileinput.isstdin()#判断最后一行是否从stdin中读取7)fileinput.close()#关闭队列fileinput常用函数:文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库目录这
19、里说明图片内容 处理XML格式文件的数据1 初识XML1.XML的概念XML是一种元标记语言,在XML文档中的数据都是使用字符串的形式保存下来的。XML仅仅包含数据,而对于数据的处理并不在XML的文档中。XML文档的基本组成单元是元素,在XML规范中就对元素的定义进行了规定。范围包括:如何分隔标签,如何放置数据,如何放置属性等。处理XML格式文件的数据1 初识XML2.XML的文档结构遵守以下规则:1)所有的开始标签必须有对应的结束标签。2)元素可以嵌套,但是不能交叠。3)有且只能有一个根元素。4)属性值必须使用引号包含起来。5)一个元素不能包含两个同名属性。6)注释不能出现在标签内部。7)没
20、有转义的“”或者“”不能出现在元素和属性的字符中。处理XML格式文件的数据1 初识XMLXML文件通常分为两部分:文件声明和文件主体(1)文件声明(2)文件主体 属性属性 元数据元数据 属性值必须加属性值必须加“”“”或者或者 注释注释 !-空格空格 多个连续空格字符多个连续空格字符不会不会合并为一个合并为一个 换行换行 处理XML格式文件的数据1 初识XML3.Python解析XML文件的方式DOM解析SAX解析处理XML格式文件的数据2 基于DOM的操作XML文件DOM(Document Object Model)是一个W3C的跨语言的API,用来读取和更改 XML 文档。DOM解析器在解
21、析一解析器在解析一个个XML文档时,一次性读取整个文档,把文档文档时,一次性读取整个文档,把文档中的所有元素保存在内存中的一个中的所有元素保存在内存中的一个树结构树结构 通过通过DOM接口,应用程序可以在任何时候访问接口,应用程序可以在任何时候访问XML文档中的任何一文档中的任何一部分数据,因此这种利用部分数据,因此这种利用DOM接口访问的方式也被称为接口访问的方式也被称为随机访问随机访问处理XML格式文件的数据2 基于DOM的操作XML文件基于DOM写入XML时,可分为两种方式:新建一个全新的新建一个全新的XML文件。文件。在已有在已有XML文件基础上追加一些元素信息。文件基础上追加一些元素
22、信息。dom=minidom.Document()dom=parse(./school.xml)处理XML格式文件的数据2 基于DOM的操作XML文件在具体创建元素/文本结点时,需要经过如下4个步骤:创建一个新元素结点创建一个新元素结点createElement()createElement()创建一个文本节点创建一个文本节点createTextNode()createTextNode()将文本节点挂载元素结点上将文本节点挂载元素结点上将元素结点挂载到其父元素上将元素结点挂载到其父元素上处理XML格式文件的数据3 基于SAX的操作xml文件SAX适于处理下面的问题:解析器解析器:负责读取负责读
23、取XML文档,并向事件处理器发送事件文档,并向事件处理器发送事件,如元素开如元素开始跟元素结束事件始跟元素结束事件 事件处理器事件处理器:负责对事件作出相应,对传递的负责对事件作出相应,对传递的XML数据进行处理。数据进行处理。SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。对大型文件进行处理只需要文件的部分内容想建立自己的对象模型处理XML格式文件的数据3 基于SAX的操作xml文件 ContentHandler类常用的方法:类常用的方法:startDocument()方法,功能:文档启动的时候调用。方法,功能:文档启动的时候调用。endDocu
24、ment()方法,功能:解析器到达文档结尾时调用。方法,功能:解析器到达文档结尾时调用。startElement(name,attrs)方法,功能:遇到方法,功能:遇到XML开始标签时开始标签时调用,调用,name是标签的名字,是标签的名字,attrs是标签的属性值字典。是标签的属性值字典。endElement(name)方法,功能:遇到方法,功能:遇到XML结束标签时调用。结束标签时调用。characters(content)方法:该方法在遇到字符串就自动调用。方法:该方法在遇到字符串就自动调用。在python中使用SAX方式处理xml要先引入xml.sax中的parse函数,还有xml.s
25、ax.handler中的ContentHandler函数。文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式文件及其操作 Python操作操作MySQL数据库数据库目录这里说明图片内容 JSON格式文件及其操作1 JSON概述JSON和XML都是互联网上数据交换的主要载体。JSON(JavaScript Object Notation,JS 对象标记)是基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用独立于编程语言的文本格式来存储和
26、表示数据,是一种轻量级的数据交换格式。简洁和清晰的层次结构使得简洁和清晰的层次结构使得JSONJSON成为理想的数据交换语言。成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效提升网络易于人阅读和编写,同时也易于机器解析和生成,并有效提升网络传输效率。传输效率。JavaScripJavaScrip对象和对象和JSONJSON之间可以非常方便地转化。之间可以非常方便地转化。处理XML格式文件的数据2 读写JSON文件1.json.dump方法:将obj序列化为JSON格式流到fp。json.dump(obj,fp,skipkeys=False,ensure_ascii=T
27、rue,check_circular=True,allow_nan=True,cls=None,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文件2.json.dump
28、s方法json.dumps(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文件3.json.load方法json.load(fp,encoding,cls,object_hook,parse
29、_float,parse_int,parse_constant,object_pairs_hook,*kw)函数功能:反序列化fp(.read()支持文件类似对象包含一个 JSON 文档)到 Python 对象。3.json.load方法 函数功能:将包含json格式的文档序列化成Python的对象,其余参数同load()函数。json.loads读取字符串,json.load读取文件。处理XML格式文件的数据3 数据格式转化对应表JSON中的数据格式和Python中的数据格式转化关系 data1=json.dumps()#列表 data2=json.dumps(2)#数字 data3=jso
30、n.dumps(3)#字符串JSONPythonObjectdictArraylistStringstrnumber(int)intnumber(real)floatTrueTrueFalseFalseNullNone dict=name:MM,age:18#字典 data4=json.dumps(dict)4 利用xmltodict库实现xml与json格式转换xml格式和json格式互转用到xmltodict库。安装xmltodict库:pip3 install xmltodict【例】json格式转xml格式示例。import xmltodict#json转xml函数def jsonto
31、xml(jsonstr):#xmltodict库的unparse()json转xml xmlstr=xmltodict.unparse(jsonstr)print(xmlstr)if _name_=_main_:json=student:course:name:Database,score:98,info:sex:Female,name:liermao,stid:202001 jsontoxml(json)文件相关的基本概念文件相关的基本概念 文件夹与目录操作文件夹与目录操作 文件基本的操作文件基本的操作 处理处理XML格式文件的数据高阶函数格式文件的数据高阶函数 JSON格式文件及其操作格式
32、文件及其操作 Python操作操作MySQL数据库数据库目录这里说明图片内容 Python操作MySQL数据库1 PyMySQL的安装PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。有以下两种安装方式:经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案使用pip安装PyMySQL,命令如:pip install PyMySQLhttps:/ pymysql2 PyMySQL操作MYSQL的流程及常用对象2 PyMySQL操作MYSQL的流程及常用对象1.Connection对象Connection对象即
33、为数据库连接对象,在python中可以使用pymysql.connect()方法创建Connection对象2 PyMySQL操作MYSQL的流程及常用对象Connection对象支持的方法:上述表中的事务机制可以确保数据一致性。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(原子性(atomicityatomicity)一个事务是一个不可分割的工作单位一个事务是一个不可分割的工作单位一致性(一致性(consistencyconsistency)事务必须是使数据库从一个一致性状态变到另一个一事务必须是使数据库从一个一致性状态变到另一个一致性状态。致
34、性状态。隔离性(隔离性(isolationisolation)一个事务的执行不能被其他事务干扰。一个事务的执行不能被其他事务干扰。持久性(持久性(durabilitydurability)一个事务一旦提交,它对数据库中数据的改变就应该一个事务一旦提交,它对数据库中数据的改变就应该是永久性的是永久性的2 PyMySQL操作MYSQL的流程及常用对象2.Cursor对象 cursor称为游标,它负责执行SQL语句和获取结果。2 PyMySQL操作MYSQL的流程及常用对象2 PyMySQL操作MYSQL的流程及常用对象在MySQL数据库已经启动的前提下,拥有可以连接数据库的用户名和密码,并且有操作
35、数据,pymysql使用的步骤如下:import pymysql1.1.导入模块导入模块conn=pymysql.connect(host,port,user,password,database,charset)2.2.创建数据库连接对象创建数据库连接对象curObj=conn.cursor()3.3.使用数据库连接对象调用使用数据库连接对象调用cursor()cursor()方法创建游标方法创建游标2 PyMySQL操作MYSQL的流程及常用对象strsql=增删改查的SQL语句 curObj.execute(strsql,参数)4.4.编写编写SQLSQL语句字符串,并执行语句字符串,并执
36、行SQLSQL语句语句mit()curObj.close()5.5.提交事务并关闭游标提交事务并关闭游标conn.close()6.6.关闭数据库连接关闭数据库连接2 PyMySQL操作MYSQL的流程及常用对象import pymysql#打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4;数据库名称conn=pymysql.connect(localhost,root,123456,jxgl)#通过cursor()函数创建一个游标对象cursorcursor=conn.cursor()#使用execute()方法执行SQL查询cursor.execute(SELEC
37、T VERSION()#使用 fetchone()方法获取单条信息db_version=cursor.fetchone()print(MySQL数据库的版本号:%s%db_version)#关闭数据库连接、conn.close()运行结果:MySQL数据库的版本号:5.7.17-log【例】【例】pymysqlpymysql使用步骤示例使用步骤示例本章小结本章先讲解了文件的基本操作方法,包括文件的打开、文件的读写和文件的关闭。然后讲解了文件的随机定位读写和文件的异常处理。最后介绍了python开发中经常遇到的两种类型的文件:JSON文件和XML文件的读写方法,该方法主要适合于处理数据量不大,而
38、且结构简单的数据。其中json.dumps方法时将Python对象编码成JSON字符串;json.loads 是将已编码的JSON字符串解码为Python对象;json.dump和json.load,需要传入文件描述符,加上文件操作。JSON内部的格式要注意,一个好的格式能够方便读取,可以用indent格式化。最后讲解了Python编程操作MySQL数据库数据文件。思考与练习1统计filel.txt文件中包含的字符数和行数。2将filel.txt文件中的每行按逆序方式输出到file2.txt文件中。3scores.txt文件存放着某班学生的计算机课成绩,包含学号、平时成绩、期末成绩三列。请根据
39、平时成绩占40%,期末成绩占60%的比例计算总评成绩,并按学号、总评成绩两列写入另一个文件scored.txt中。同时在屏幕上输出学生总人数,按总评成绩计算90分以上、8089分、70-79分、6069分、60分以下各成绩区间的人数和班级总平均分(取小数点后两位)。思考与练习4.运用DOM和SAX两种方式,操作“movie.xml”文件。Anime,Science Fiction DVD 1989 R 8 A schientific fiction 思考与练习5.从下述xml文件读取结点转换为json格式,并保存到文件中。maomao male mengmeng female 思考与练习6.修
40、改6.6节中的应用案例,把普通用户信息用xml文件存储数据,实现登录管理功能模块。7.运用PyMySQL开发网店会员管理系统,该系统主要实现会员注册、会员登录、密码修改以及会员信息的删除等功能,首先创建数据库:ShopMember,同时定义用于存放会员信息的userinfo表,其表结构的脚本如下:DROP TABLE IF EXISTS userinfo;CREATE TABLE userinfo(userid int(11)NOT NULL AUTO_INCREMENT,username varchar(50)DEFAULT NULL,userpwd char(10)DEFAULT NULL,phone char(11)DEFAULT NULL,email varchar(50)DEFAULT NULL,PRIMARY KEY(userid)ENGINE=InnoDB DEFAULT CHARSET=utf8;
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。