资源描述:
《【8A文】Python程序设计-文件操作.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第7章文件操作为了长期保存数据,方便修改和共享,就必须将数据以文件的形式存储到外部存储介质(如磁盘)中。MIS是使用数据库来存储数据的,而应用程序的配置信息是使用文件来存储的;图形、图像通常也是用文件来存储的。文件在软件开发中占有重要的地位。按文件中数据的组织形式把文件分为文本文件和二进制文件两类。(1)文本文件文本文件存储的是常规字符串,由文本行组成,通常以换行符''结尾,只能读写常规字符串。文本文件可以用字处理软件如gedit、记事本进行编辑。常规字符串是指文本编辑器能正常显示、编辑的字符串。如,英文字母串,汉字串,数字串(不是数字)。(2)二进制文件二
2、进制文件把对象在内存中的内容以字节串(bytes)进行存储。不能用字处理软件进行编辑。7.1文件基本操作文件对象名=open(文件名[,打开方式[,缓冲区]])(1)文件名指定了被打开的文件名称。(2)打开模式指定了打开文件后的处理方式,见表7-1。(3)缓冲区指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表示缓冲区的大小。默认值是缓存模式。(4)open()函数返回1个文件对象,该对象可以对文件进行各种操作。例如:f1=open('file1.txt','r')f2=open('file2.txt','w')7.1文件基本操作文件打开方式文件常
3、用属性7.1文件基本操作属性说明Closed判断文件是否关闭,若文件被关闭,则返回TrueMode返回文件的打开模式Name返回文件的名称文件对象常用方法7.1文件基本操作方法说明flush()把缓冲区的内容写入文件,不关闭文件close()把缓冲区的内容写入文件,关闭文件,释放文件对象read([size])从文件中读取size个字节的内容作为结果返回,如果省略size则表示一次性读取所有内容readline()从文本文件中读取一行内容作为结果返回readlines()把文本文件中的每行作为字符串插入列表中,返回该列表seek(offset[,whence])
4、把文件指针移动到新的位置,offset表示相对于whence的位置。whence为0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0tell()返回当前文件指针的位置truncate([size])删除从当前指针位置到文件末尾的内容。如果指定了size,则不论指针在什么位置都只留下前size个字节,其余的删除write(s)把字符串s的内容写入文件writelines(s)把字符串列表写入文本文件,不添加换行符7.2文本文件基本操作例1:向文本文件中写入内容。f=open('sample.txt','a+')s='文本文件的读取方
5、法文本文件的写入方法'f.write(s)f.close()7.2文本文件基本操作更建议这样写:s='文本文件的读取方法文本文件的写入方法'withopen('sample.txt','a+')asf:f.write(s)使用with自动关闭资源。可以在代码块执行完毕后还原进入该代码块时的现场。不论何种原因跳出with块,总能保证文件被正确关闭。7.2文本文件基本操作例2:读取并显示文本文件的前5个字节。(Python2)f=open('sample.txt','r')s=f.read(5)#读取文件的前5个字节f.close()print's=
6、',sprint'字符串s的长度(字符个数)=',len(s)7.2文本文件基本操作例3:读取并显示文本文件的前5个字符。(Python3)f=open('sample.txt','r')s=f.read(5)#读取文件的前5个字符f.close()print('s=',s)print('字符串s的长度(字符个数)=',len(s))7.2文本文件基本操作例4:读取并显示文本文件所有行。f=open('F7_2.txt','r')whileTrue:line=f.readline()ifline=='':breakprintline,#逗号不会产生换行符,但文件
7、中有换行符,因此会换行f.close()7.2文本文件基本操作或者可以这样写:f=open('F7_2.txt','r')li=f.readlines()forlineinli:printline,f.close()7.3文件指针操作对于read和write方法,当操作完成后,都会自动移动文件指针。为了能做到在文件的任何位置读写内容,需要用seek()方法移动文件指针。(1)seek(n),其中n>=0,seek(0)表示文件指针移到文件头;n>0时,表示移动到文件头之后的位置。从任意位置读取内容时或从任意位置覆盖内容时需要这样做。(2)seek(0,2)表示把
8、文件指针移到文件尾。在追