版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章文件操作CONTENTS目录7.1文件的基本概念017.2文件的打开和关闭027.3文本文件操作037.4二进制文件操作047.5文件和目录管理057.1文件的基本概念7.1.1文件和目录文件是存储在磁盘等外部存储器上的数据集合。软件、数据、文字、图像、声音、视频等信息均以文件形式存储在计算机的外部存储器中。文件是通过目录来进行组织和管理的,目录提供了指向对应磁盘空间的路径地址。目录一般采用树状结构,每个磁盘有一个根目录,它包含若干个文件和子目录。子目录还可以包含下一级子目录,由此形成多级目录结构。路径按照参考点不同可以分为绝对路径和相对路径,绝对路径是指从根目录开始标识文件所在位置的完整路径,相对路径则是相对于程序所在目录建立起来的引用文件所在位置的路径。7.1.2文本文件文本文件是一种常用的计算机文件,它是一种典型的顺序文件,其文件逻辑结构属于流式文件。在文本文件中,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。在文本文件中除了存储有效字符(包括回车、换行等)信息外,不能存储其他任何信息。文本文件是由若干行字符构成的,通常通过在文本文件最后一行后放置文件结束标志来指明文件的结束。文本文件只包含纯文本,文本文件是指一种容器,而纯文本是指一种内容。文本文件可以在各种操作系统之间自由交互。在Windows中,如果一个文件的扩展名为.txt,则系统就认为它是一个文本文件。此外,出于特殊的目的,有些文本文件也使用其他扩展名。7.1.3二进制文件二进制文件是指使用ASCII及扩展ASCII字符编写的数据或程序文件,Word文档、图像文件、音频文件和视频文件以及各种计算机程序文件都属于二进制文件,这些文件含有特殊的格式及计算机代码。广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件编码是定长的,译码相对要容易一些;二进制文件编码是变长的,可以灵活使用,但译码要麻烦一些,不同的二进制文件需要采用不同的译码方式。使用二进制文件的好处:占用存储空间小;存储速度快;存储精度高。7.1.4文本文件与二进制文件的比较文本文件与二进制文件的区别是逻辑结构上的不同,即所采用的编码方式有所不同。文本文件是基于字符编码的文件,常见的编码有ASCII、Unicode和UTF-8等;二进制文件是则基于值编码的文件,可以视为是自定义编码,即根据具体应用来指定某个值;二进制文件只是储存数据,并不写明数据类型和具体含义。使用文本工具打开一个文件,首先读取文件物理上所对应的二进制数据流,然后按照所选择的解码方式来解释这个数据流,并将解释结果显示出来。7.2文件的打开和关闭7.2.1打开文件打开文件是指在程序与操作系统之间建立某种联系,程序将所要操作文件的基本信息通知操作系统,这些信息包括文件的路径、读写方式以及读写位置等。在Python中,可以使用内置函数open()打开指定的文件并返回相应的文件对象,如果无法打开指定的文件,则会引发OSError错误。Open()函数的调用格式如下:open(文件路径[,打开模式,[缓冲区[,编码]]])7.2.2关闭文件使用内置函数open()成功地打开一个文件时会返回一个文件对象,该文件对象具有一些属性和方法,可以用来对所打开的文件进行各种操作。完成文件操作后,需要及时地关闭文件,以释放文件对象并防止文件中的数据丢失。在Python中,可以通过调用文件对象的close()方法来关闭文件,调用格式如下:文件对象.close()close()方法用于关闭先前用open()函数打开的文件,将缓冲区中的数据写入文件,然后释放文件对象。文件关闭之后,便不能访问文件对象的属性和方法了。如果想继续使用文件,则必须用open()函数再次打开文件。7.3文本文件操作7.3.1读取文本文件1.使用read()方法读取文本内容文件对象的read()方法可以用于从文本流当前位置读取指定数量的字符并以字符串形式返回,调用格式如下:变量=文件对象.read([size])2.使用readline()方法读取文本内容文件对象的readline()方法从文本流当前行的当前位置开始读取指定数量的字符并以字符串形式返回,具体调用格式如下:文件对象.readline([size])3.使用readlines()方法读取文本内容文件对象的readlines()方法用于从文本流上读取所有可用的行并返回这些行所构成的列表,调用格式如下:文件对象.readlines()7.3.2写入文本文件1.使用write()方法写入文本内容文件对象的write()方法用于向文本流的当前位置写入字符串并返回写入的字符个数,调用格式如下:文件对象.write(字符串)2.使用writelines()方法写入文本内容文件对象的writelines()方法用于在文本流当前位置依次写入指定列表中的所有字符串,调用格式如下:文件对象.writelines(字符串列表)7.4二进制文件操作7.4.1在文件中定位1.使用tell()方法获取文件指针的位置使用内置函数open()打开一个文本文件或二进制文件后将创建一个文件对象,此时可以通过该调用文件对象的tell()方法来获取文件指针的当前位置,调用格式如下:文件对象.tell()2.使用seek()方法更改文件指针的位置使用open()函数以二进制模式打开一个文件后,可以通过调用文件对象的seek()方法来改变文件指针的位置,调用方法如下:文件对象.seek(偏移量[,参考点])7.4.2读写二进制文件使用内置函数open()打开文件时,可以通过打开模式参数设置是以文本模式还是二进制模式打开指定的文件。如果在打开模式参数中包含字母“b”,例如“rb”、“rb+”、“wb”、“wb+”、“ab”或“ab+”,则以二进制模式打开指定的文件。以二进制模式打开文件时,文件的数据流可以看成是二进制字节流。在这种情况下,首先需要了解二进制字节流的组成规则,即在文件的第几个字节到第几个字节存储的是什么类型数据,该数据代表的具体含义是什么,在这个基础上可以使用文件对象的相关方法对二进制文件进行定位和读取操作。7.4.3二进制数据的打包与解包1.打包二进制数据导入struct模块后,可以使用struct.pack()函数按照指定的格式化字符串将一组数据项打包成一个字节对象并返回该字节对象,调用格式如下:struct.pack(fmt,v1,v2,...)2.解包二进制数据使用struct.pack()方法对一些数据项打包时将生成一个包含这些数据项的字节对象。如果要从这样一个字节对象中拆分出原来的数据项,则可以使用struct.unpack()函数根据格式字符串fmt从缓冲区中解包并返回一个元组,调用格式如下:struct.unpack(fmt,buffer)7.4.4数据对象的转储与加载1.dumps()函数和loads()函数pickle.dumps()函数的功能是将各种数据对象转储为一个字节对象(称为pickle对象)并返回该对象,调用格式如下:pickle.dumps(数据对象)pickle.loads()函数用于从pickle字节对象中返回原来的数据对象,调用格式如下:pickle.loads(字节对象)2.dump()函数和load()函数pickle.dump()函数用于将各种类型的数据对象写入已打开的文件中,调用格式如下:pickle.dump(数据对象,文件对象)pickle.load()函数的功能是从存储pickle对象的文件中读取数据并作为一个对象返回,调用格式如下:pickle.load(文件对象)7.5文件和目录管理7.5.1文件管理1.重命名文件os.rename(源文件,目标文件)2.复制文件(1)shutil.copyfile(源文件,目标文件)(2)shutil.copy(源文件,目标文件)3.移动文件shutil.move(源文件,目标文件)4.删除文件os.remove(文件路径)7.5.2目录管理创建目录:os.mkdir(路径)重命名目录:os.rename(源目录,目标目录)获取当前工作目录:os.getcwd()更改当前工作目录:os.chd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度版权授权与网络版权保护平台建设合同
- 二零二五年度餐厅酒楼垃圾分类与环保教育合同
- 二零二五年度沈阳市个人租赁房屋租赁合同续签协议
- 仓库物资收货流程
- 幼儿教师讲故事培训
- 建筑工程管理进度管理
- 海参养殖可行性研究报告
- 2025供水设备购销合同范例
- 汽车销售顾问工作计划
- 徒手心肺复苏
- 光伏工程各单位归档资料
- 《美丽中国是我家》 课件
- 全面依法治国
- GB/T 17215.304-2017交流电测量设备特殊要求第4部分:经电子互感器接入的静止式电能表
- 2023年最新的乡镇街道班子成员民主生活互相批评意见2023
- 商务沟通第二版第6章管理沟通
- 培训课件-核电质保要求
- 过敏原检测方法分析
- 室外给水排水和燃气热力工程抗震设计规范
- 【个人独资】企业有限公司章程(模板)
- 外观GRR考核表
评论
0/150
提交评论