《Python程序设计基础》-课件 项目九 Python 文件操作_第1页
《Python程序设计基础》-课件 项目九 Python 文件操作_第2页
《Python程序设计基础》-课件 项目九 Python 文件操作_第3页
《Python程序设计基础》-课件 项目九 Python 文件操作_第4页
《Python程序设计基础》-课件 项目九 Python 文件操作_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

任务1认识文件01任务2使用文件操作函数完成文本的读写02任务3Python不同文件模块的使用03357任务4基于文件操作的异常处理04任务1认识文件3581. 了解文件路径的基本概念。2. 了解文件的两种路径。3. 了解文件操作基础。任务目标359一、文件路径在程序运行时,变量是临时存储数据的一种方式,一旦程序结束,这些数据将会丢失。如果希望在程序结束后数据仍然保留,就需要将数据保存到文件中。Python提供了内置的文件对象以及操作文件和目录的内置模块,通过这些技术,可以轻松地将数据存储到文件中。文件有两个重要属性:文件名和路径。文件名是为每个文件设置的名称,而路径则用来指明文件在计算机中的位置。相关知识360注意:路径中的“D:\”是指“根文件夹”,它包含了所有其他文件夹。在Windows系统中,根文件夹名为“D:\”,也称“D:”盘。在OSX和Linux系统中,根文件夹是“/”。本教材的示例使用的是Windows风格的根文件夹,如果在OSX或Linux系统中输入交互式环境的例子,应用“/”代替。另外,附加卷(如DVD驱动器或USB闪存驱动器)在不同的操作系统中的表示形式也不同。在Windows系统中,书写路径时使用反斜杠“\”作为文件夹之间的分隔符。361在交互式环境中输入如下代码。>>>importos>>>os.path.join('demo','exercise')'demo\\exercise'因为此程序是在Windows系统中运行的,所以os.path.join('demo','exercise')返回'demo\\exercise'(注意:反斜杠有两个,因为每个反斜杠需要由另一个反斜杠字符来转义)。如果在OSX或Linux系统中调用这个函数,该字符串就会是'demo/exercise'。如果需要创建带有文件名的文件存储路径,同样可以使用os.path.join函数。362二、绝对路径和相对路径绝对路径能够完整地表示出文件的真实位置,并且可以根据这个路径层级找到文件。在Windows系统中可以通过“Shift+鼠标右键”单击文件调出文件的绝对路径。调出文件绝对路径的方法如图所示,先按住Shift键,把光标移至需要获取绝对路径的文件图标处,单击鼠标右键,在弹出的菜单中选择“复制文件地址”命令,即可将其绝对路径复制到剪贴板处。363相对路径即相对于当前工作文件夹,目标文件夹的路径。以Windows系统为例,“.\”代表当前目录,“..\”代表上一层目录,“\”代表根目录。364调出文件绝对路径的方法三、文件操作基础(1)文件的基本操作:作用于文件本身,属于系统级操作。●创建文件:使用内置的open函数创建一个新文件,并返回一个文件对象。可以指定文件的名称、打开模式和编码等参数。●删除文件:使用os.remove函数删除指定的文件。●修改权限:使用os.chmod函数修改文件的权限。可以设置文件的所有者、组和其他用户的权限。●重命名文件:使用os.rename函数重命名指定的文件。●移动文件:使用shutil.move函数移动指定的文件到新的位置。365(2)文件的读写操作:最常用的文件操作,作用于文件的内容,属于应用级操作。●读取文件:使用文件对象的read()方法读取文件内容。可以一次读取全部内容,也可以按行读取。●写入文件:使用文件对象的write()方法写入内容。可以一次写入一行或一次写入多行。其中,对文件的系统级操作功能单一,比较容易实现,可以借助Python中的专用模块(os、sys等),并调用模块中的指定函数实现。366文件的应用级操作可以分为以下3步,每一步都需要借助对应的函数实现。●打开文件:使用open函数,该函数会返回一个文件对象。●对已打开的文件做读/写操作:读取文件内容可以使用read、readline以及readlines函数;向文件中写入内容可以使用write函数。●关闭文件:完成对文件的读/写操作之后,需要关闭文件,可以使用close函数。一个文件,必须在打开之后才能对其进行操作,并且在操作结束之后,还应将其关闭,操作顺序不能打乱。367任务2

使用文件操作函数完成文本的读写3681. 掌握常用文件操作函数的使用。2. 能运用文件操作函数进行读写等操作。任务目标369一、open函数在Python中,经常需要创建或打开指定的文件,并创建文件对象,这些操作可以通过内置的open函数实现。该函数的常用语法格式如下。file=open(file_name[,mode='r'[,buffering=-1[,encoding=None]]])在此格式中,用“[]”括起来的部分为可选参数,既可以使用,又可以省略。其中,各个参数的含义如下。●file:要创建的文件对象。相关知识370●file_name:要创建或打开文件的名称,若为字符串类型,需要用引号(单引号或双引号都可以)括起来。注意:如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。●mode:可选参数,用于指定文件打开模式。●buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区。●encoding:手动设定打开文件时所使用的编码格式,不同平台的encoding参数值不同,以Windows系统为例,其默认为CP936(GBK)编码。371372二、read函数read函数用于逐个字节或字符读取文件中的内容。对于借助open函数,并以可读模式(包括r、r+、rb、rb+)打开的文件,可以调用read函数逐个字节(或逐个字符)读取文件中的内容。如果文件是以文本模式(非二进制模式)打开的,则read函数会逐个字符进行读取;反之,read函数会逐个字节进行读取。373read函数的基本语法格式如下。file.read([size])其中,file表示打开的文件对象;size作为一个可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。374三、readline函数readline函数用于读取文件中的一行,包含最后的换行符“\n”。readline函数的基本语法格式如下。file.readline([size])其中,file表示打开的文件对象;size表示可选参数,用于指定读取每一行时,一次最多读取的字符(字节)数。和read函数一样,readline函数成功读取文件数据的前提是,使用open函数指定打开文件的模式必须为可读模式(包括r、rb、r+、rb+4种)。375四、readlines函数readlines函数用于读取文件中的所有行,它和调用不指定size参数的read函数类似,只不过该函数返回的是一个字符串列表,其中每个元素为文件中的一行内容。和readline函数一样,readlines函数在读取每一行时,会连同行尾的换行符一起读取。readlines函数的基本语法格式如下。file.readlines()其中,file表示打开的文件对象。与read、readline函数一样,readlines函数要求打开文件的模式必须为可读模式。376五、write函数Python中的文件对象提供了write函数,可以向文件中写入指定的内容。write函数的语法格式如下。file.write(string)其中,file表示打开的文件对象;string表示要写入文件的字符串(或字节串,仅适合写入二进制文件)。注意:在使用write函数向文件写入数据时,需保证使用open函数指定打开文件的模式必须为r+、w、w+、a或a+,否则执行write函数会报io.UnsupportedOperation错误。377六、writelines函数Python的文件对象中不仅提供了write函数,还提供了writelines函数,可以实现将字符串列表写入文件。注意:写入函数只有write和writelines函数,而没有名为writeline的函数。writelines函数的语法格式如下。file.writelines(list)其中,list表示字符串列表(如["小蓝","小红"])。378七、close函数对于使用open函数打开的文件,在完成相应的操作之后,需要用close函数将其手动关闭,否则程序的运行可能出现问题。close函数是专门用来关闭已打开文件的,其语法格式如下。file.close()其中,file表示打开的文件对象。任务3

Python不同文件模块的使用3791. 掌握Python不同文件模块的用法。2. 熟悉Python不同文件模块的常用函数。3. 能使用模块完成文件打开、处理及关闭等操作。任务目标380一、pickle模块pickle模块用于实现Python对象的持久化存储。Python中有一个序列化过程叫作pickle,它能实现任意对象与文本之间的相互转换,也能实现任意对象与二进制对象之间的相互转换。也就是说,pickle模块可以实现Python对象的存储及恢复。pickle模块是Python的一个标准模块,安装Python的同时就已经安装了pickle库,因此它不需要再单独安装,使用import将其导入程序,就可以直接使用。相关知识381pickle模块提供了以下4个函数可供使用。1. dumps函数dumps函数用于将Python中的对象序列化成二进制对象并返回,其语法格式如下。dumps(obj,protocol=None,*,fix_imports=True)各参数的含义如下。●obj:要转换的Python对象。●protocol:pickle的转码协议,取值为0、1、2、3、4,其中0、1、2对应Python早期的版本,3和4对应Python3.x版本及之后的版本。在未指定的情况下,其值默认为3。3822. loads函数loads函数用于读取给定的二进制对象数据,并将其转换为Python对象,其语法格式如下。loads(data,*,fix_imports=True,encoding='ASCII',errors='strict')其中,data表示要转换的二进制对象。3833. dump函数dump函数用于将Python中的对象序列化成二进制对象,并写入文件,其语法格式如下。dump(obj,file,protocol=None,*,fix_imports=True)各参数的含义如下。●obj:要序列化的Python对象。●file:转换到指定的二进制文件中,要求该文件必须是以“wb”打开模式进行操作。●protocol:和dumps函数中protocol参数的含义完全相同,即序列化时使用的协议版本。如果未指定,则使用默认协议版本。3844. load函数load函数用于读取指定的序列化数据文件,并返回对象,其语法格式如下。load(file,*,fix_imports=True,encoding='ASCII',errors='strict')其中,file表示要转换的二进制对象文件(必须以“rb”打开模式操作文件)。以上这4个函数可以分成两类,其中dumps函数和loads函数实现基于内存的Python对象与二进制对象互转;dump函数和load函数实现基于文件的Python对象与二进制对象互转。385386二、fileinput模块fileinput模块用于逐行读取多个文件的数据。前面学习了使用open函数和read函数或readline函数、readlines函数组合来读取单个文件的数据,但在某些场景中,可能需要读取多个文件的数据,在这种情况下再使用这些组合,显然就不合适了。对此,Python提供了fileinput模块,通过该模块中的input函数,能同时打开指定的多个文件,还能逐个读取这些文件中的内容。387fileinput模块中input函数的语法格式如下。fileinput.input(files="filename1,filename2,…",inplace=False,backup='',bufsize=0,mode='r',openhook=None)此函数会返回一个fileinput对象,它可以理解为将多个指定文件合并之后的文件对象。各参数的含义如下。●files:多个文件的路径列表。●inplace:指定是否将标准输出的结果写回文件,此参数默认值为False。388●backup:指定备份文件的扩展名。●bufsize:指定缓冲区的大小,默认为0。●mode:打开文件的模式,默认为r(只读模式)。●openhook:控制文件的打开方式,如编码格式等。注意:和open函数不同,input函数不能指定打开文件的编码格式,这意味着使用该函数读取的所有文件,除非以二进制方式进行读取,否则该文件的编码格式必须和当前操作系统默认的编码格式相同,不然Python解释器可能提示UnicodeDecodeError错误。和open函数返回单个的文件对象不同,fileinput对象无须调用类似read、readline、readlines这样的函数,直接通过for循环即可按次序读取多个文件中的数据。389fileinput模块中提供了很多函数,通过调用这些函数,可以更快地实现想要的功能。fileinput模块中提供的函数390三、linecache模块除了可以借助fileinput模块实现读取文件,Python还提供了linecache模块。linecache模块用于随机读取文件指定行。linecache模块常用来读取Python源文件中的代码,它使用UTF-8编码格式读取文件内容。因此,使用该模块读取的文件,其编码格式也必须为UTF-8,否则要么读取出来的数据是乱码,要么直接读取失败(Python解释器会报SyntaxError异常)。391linecache模块中常用的函数见下表。linecache模块中常用的函数392四、os.path模块os.path模块不仅提供了一些操作路径字符串的方法,还提供了一些指定文件属性的方法,os.path模块常用的函数见下表。linecache模块中常用的函数393linecache模块中常用的函数394linecache模块中常用的函数任务4

基于文件操作的异常处理3951. 了解异常的概念。2. 熟悉异常的处理方法和异常的传递。3. 掌握try...finally语句的使用方法。4. 能正确进行基于文件操作的异常处理。任务目标396一、异常的概念异常就是一个事件,在程序执行过程中遇到特殊情况时发生,帮助定位错误,了解程序实际运行状况。一般情况下,在Python无法按正常流程处理时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时可以选择捕获并处理,若异常超出可处理的范围且没有被捕获,程序将会终止,防止造成更大的损失。相关知识397398二、异

温馨提示

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

评论

0/150

提交评论