Python程序设计第7章-文件和IO课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计第7章-文件和IO课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 文件 IO 课件
- 资源描述:
-
1、2022-6-3第第7章章 文件和文件和I/O主 讲 人:目录目录2022-6-321. 文件基础知识2. 文件操作3. 目录操作2022-6-3概述概述本章要解决的问题如下: 什么是文件 怎样操作文件 怎样操作目录2022-6-31. 文件基础知识1.1什么是文件 文件是存储在外部介质上的数据集合,与文件名相关联。 按文件中的数据组织形式可以把文件分为两类: 文本文件 二进制文件2022-6-31. 文件基础知识1.2文件的打开或创建文件变量名=open(文件名, 打开方式, 缓冲区)示例如下:f1=open(file1.txt, r)f2=open(file2.txt, w)2022-6-
2、31. 文件基础知识1.3字符编码编码是用数字来表示符号和文字的一种方式,是符号、文字存储和显示的基础。信息传递与编码关系的例子如右图所示:2022-6-31. 文件基础知识常见的编码 UTF-8 GB2312 GBK CP936 Unicode2022-6-31. 文件基础知识1.4文件的写入1文本文件的写入以下两种方法可以进行文本文件的写入。 write(str):将字符串str写入文件。 writelines(sequence_of_strings):写多行到文件,其中sequence_of_strings是由字符串所组成的列表,或者迭代器。2022-6-31. 文件基础知识文件的写过程
3、与存储如下图:2022-6-31. 文件基础知识示例把字符串“重庆邮电大学123cqupt”写入文件F7_1.txt中,采用GBK编码,显示文件的长度(总字节),默认采用的是GBK编码。2022-6-31. 文件基础知识程序#Exp7_1.py#coding=GBKf=open(F7_1.txt,w)f.write(重庆邮电大学123cqupt)f.seek(0,2) #把文件指针移到文件尾length=f.tell() #会返回文件尾的位置,其值刚好等于文件长度f.close()print (文件长度=,length)程序运行结果程序运行结果文件长度=212022-6-31. 文件基础知识示
4、例在Windows系统中,把字符串“重庆邮电大学123cqupt ”用UTF-8编码写入文件F7_2.txt中,并显示文件的长度(总字节数)。2022-6-31. 文件基础知识程序import codecs #自然语言编码转换模块#Exp7_2.py#coding=UTF-8s=重庆邮电大学123cquptf=codecs.open(F7_2.txt,w,UTF-8) #UTF-8编码方式f.write(s)f.seek(0,2) #把文件指针移到文件尾length=f.tell() #文件尾的位置,其值刚好等于文件长度(字节数)f.close()print(文件长度=,length)程序运行
5、结果程序运行结果文件长度=272022-6-31. 文件基础知识示例在文件F7_2.txt末尾追加两行内容。#Exp7_3.pyf=open(F7_2.txt,a+)s=重邮在山上n重邮景色很美nf.write(s)f.close()2022-6-31. 文件基础知识2二进制文件的写入以下两种方法可以进行二进制文件的写入。 一种是通过struct模块的pack()方法把数字和布尔值转换成字节串(以字节为单位的字符串),然后用write()方法写入二进制文件中,字符串则可直接写入二进制文件中。pack()方法的语法是:pack(格式串,数字对象表)。 另外一种是用pickle模块的dump()方
6、法直接把对象转换为字节串(bytes)并存入文件中。1.4文件的写入2022-6-31. 文件基础知识示例把1个整数、1个浮点数、1个布尔型对象、1个字符串存入二进制文件F7_4.dat中。#Exp7_4.py#coding=UTF-8import structn=102400000 x=10.24b=Trues=重庆邮电大学123cquptsn=struct.pack(if?, n, x, b) #把整数n、浮点数x、布尔对象b依次转换为字节串2022-6-31. 文件基础知识程序续f=open(F7_4.dat,wb)f.write(sn) #写入字节串f.write(s) #字符串可直接
7、写入f.close()2022-6-31. 文件基础知识示例把1个整数、1个浮点数、1个字符串、1个列表、1个元组、1个集合、1个字典存入二进制文件F7_5.dat中。#Exp7_5.py#coding=UTF-8import picklef=open(F7_5.dat,wb)n=7i=102400000a=10.24s=中国人民123abclst=1,2,3,4,5,6J,7,8,92022-6-31. 文件基础知识tu=(-5,10,8)coll=4,5,6dic=a:apple,b:banana,g:grape,o:orangetry:pickle.dump(n,f) #表示后面将要写入
8、的数据个数pickle.dump(i,f) #把整数i转换为字节串,并写入文件pickle.dump(a,f)pickle.dump(lst,f)pickle.dump(i,f)pickle.dump(a,f)pickle.dump(lst,f)pickle.dump(i,f)pickle.dump(tu,f)pickle.dump(coll,f)pickle.dump(dic,f)except:print(写文件异常!) #如果写文件异常则跳到此处执行f.close()2022-6-31. 文件基础知识1.5文件的读取1文本文件的读取 read(size):读取文件,如果文件大于size个字
9、节,则只读取size个字节;如果小于size个字节,则读取完;如果不设置size,则默认读取全部。 readline(size):读取一行 readlines(size):读取完文件2022-6-31. 文件基础知识示例读取文件F7_1.txt的前8个字节,并显示:#Exp7_6.pyf=open(F7_1.txt,r)s=f.read(11)#读取文件的前11个字节f.close()print(s=,s)print(字符串s的长度(字符个数)=, len(s)程序运行结果程序运行结果s=重庆邮电大学123c字符串s的长度(字符个数)= 112022-6-31. 文件基础知识示例读取文件F7_
10、1.txt的全部内容,并显示:#Exp7_7.pyf=open(F7_1.txt,r)s=f.read()#读取文件全部内容f.close()print(s=,s)程序运行结果程序运行结果s=重庆邮电大学123cqupt2022-6-31. 文件基础知识示例使用readline()读取文件F7_2.txt的每一行,并显示: #Exp7_8.pyf=open(F7_2.txt,r)while True: line=f.readline() if line=: breakprint(line),#逗号不会产生换行符,但文件中有换行符,因此会换行f.close()程序运行结果程序运行结果重庆邮电大学
11、123cqupt重邮在山上重邮景色很美2022-6-31. 文件基础知识示例使用readlines()读取文件F7_2.txt的每一行,并显示:#Exp7_9.pyf=open(F7_2.txt,r)s=f.readlines()for line in s: print(line), #逗号不会产生换行符,但文件中有换行符,因此会换行 f.close()程序运行结果程序运行结果重庆邮电大学123cqupt重邮在山上重邮景色很美2022-6-31. 文件基础知识1.5文件的读取2二进制文件的读取 用struct模块的pack()方法完成转换而写的文件,应该用read()方法读出相应数据的字节串,
12、然后通过代码还原数据。字符串不用还原。 用pickle模块的dump()方法完成转换而写的文件,应该用pickle模块的load()方法还原对象。2022-6-31. 文件基础知识1.5文件的读取(1)使用read()方法 字符串可以直接读出,数字和布尔对象需要用struct模块的unpack()方法还原。 unpack()方法的语法是: unpack(格式串,字符串表)。2022-6-31. 文件基础知识读取二进制文件F7_4.dat中的数据,并显示:#Exp7_10.pyimport structf=open(F7_4.dat,rb)sn=f.read(9)tu=struct.unpack
13、(if?,sn) #从字节串sn中还原出1个整数、1个浮点数和1个布尔值,并返回元组。print(tu)n=tu0 x=tu1bl=tu2print(n=,n)print(x=,x)print(bl=,bl)s=f.read(9)f.close()print(s=,s)程序运行结果程序运行结果 (102400000,10.239999771118164,True)n=102400000 x=10.239999771118164bl=Trues=重庆邮电大学123cqupt2022-6-31. 文件基础知识1.5文件的读取(2)使用pickle模块的load()方法 pickle模块的load(
14、f)方法可以从二进制文件中读取对象的字节串并还原对象,使用起来非常方便。参数f是文件对象,该方法返回还原后的对象。2022-6-31. 文件基础知识示例读取二进制文件F7_5.dat中的数据,并显示:#Exp7_11.pyimport picklef=open(F7_5.dat,rb)n=pickle.load(f) #读取文件的数据个数i=0while i=0,seek(0)表示文件指针移到文件头;n0时,表示移动到文件头之后的位置,从任意位置读取内容时或从任意位置覆盖内容时需要这样做。 seek(0,2)表示把文件指针移到文件尾,在追加新内容时需要这样做。2022-6-31. 文件基础知识
展开阅读全文