版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章
文件python程序设计基础教程6.1文件基本操作
6.1.1文件概述从读写方式来说,分为顺序文件和随机文件。按照存储的方式,分为文本文件和二进制文件。文本文件是基于单一特定字符编码(如ASCII,UTF-8)的文件。二进制文件是基于值编码的文件。6.1文件基本操作
6.1.2文件的打开和关闭语法格式:open(filename[,mode='r'][,buffering=-1][,encoding=None])filename为待打开的文件的路径及名称。
若该文件与程序在同一目录下,则文件的路径可以省略。
为了方便程序的迁移,通常filename通常给出是数据文件的相对路径。文件的打开open函数中的mode参数6.1.2文件的打开和关闭模式含义'r'以读取方式打开文件(默认打开方式)'w'以写入方式打开文件,文件原内容被清空'x'新建文件并写入方式,若文件已存在则报错'a'以追加方式打开文件,追加在末尾位置'b'以二进制模式打开文件't'以文本模式打开文件(默认方式)'+'以读/写方式打开文件其中,'b'、't'、'+'方式,可与'r'、'w'、'x'、'a'方式组合使用6.1文件基本操作
6.1文件基本操作
文件的打开open函数中的buffering参数
6.1.2文件的打开和关闭buffering含义-1设置缓冲区大小为io.DEFAULT_BUFFER_SIZE0二进制文件禁止缓存,文本文件不可以禁止缓存1行缓冲>1设置缓冲区大小,以字节为单位6.1文件基本操作
文件的打开open函数中的encoding参数
可选参数,指定用来解码或编码的编码格式的名称。此参数只在文本模式中使用。默认编码依赖于平台。
可以通过encoding参数指定用于编码及解码的编码格式名称。1
6.1.2文件的打开和关闭6.1文件基本操作文件的关闭语法格式:file.close()
通过文件的close方法可以将打开的文件关闭。尤其带缓冲的写文件操作,若没有关闭文件,有可能丢失写入数据。16.1.2文件的打开和关闭6.1文件基本操作简洁的文件打开关闭方法语法格式:withopen(filename[,mode='r'])asf: <文件处理语句>
使用此种简洁的写法,可以不用书写f.close()语句。在with结构中的文件处理语句运行结束,会自动调用f.close()关闭文件。16.1.2文件的打开和关闭6.1文件基本操作读文件read方法file.read(num)
其中,file为已打开待读取内容的文件对象,num指定从文件读取的字符或字节数,若open时用"rb"模式打开文件,则num指定读取的字节数;若open时用"r"模式打开文件,则num指定读取的字符数。26.1.3文件的读写6.1文件基本操作读文件read方法
如文件内容为“读取Python文件输出你好Python!”
#以文本文件形式读取文件内容f=open('D:\\python\\ch6\\test.txt','r')print(f.read(6))f.close()#以二进制D:\\python\\ch6\\test.txt','rb')print(f.read(6))f.close()6.1.3文件的读写文件是以r模式打开,则读取6个字符串,返回“读取Pyth”,文件若是以rb模式打开,则读取6个字节,返回“\xb6\xc1\xc8\xa1Py”,因为每个汉字占两个字节,“\xb6\xc1”为“读”字符所对应的编码,“\xc8\xa1”为“取”字符所对应的编码.6.1文件基本操作读文件readline方法file.readline(num)
该方法虽然也可以有参数num,但使用了参数num,等价于file.read(num),因此使用较少。
该方法通常使用方法为file.readline(),其功能为读出文件中的一行内容,即从当前位置开始读取,直到遇到换行符。26.1.3文件的读写6.1文件基本操作读文件readline方法6.1.3文件的读写读取文件D:\python\ch6\2.txt文件内容。文件内容如下:#以文本文件形式读取文件内容f=open('D:\\python\\ch6\\2.txt','r')print(f.readline())print(f.readline(6))print(f.read(6))print(f.readline())f.close()6.1文件基本操作读文件readlines方法2#以文本文件形式读取文件内容f=open('D:\\python\\ch6\\2.txt','r')forlineinf.readlines():print(line)whileTrue:aline=f.readline()ifaline!=’’:print(aline)else:breakf.close()6.1.3文件的读写6.1文件基本操作写文件write方法file.write(str)
其中,file为打开的准备写入的文件对象,str为待写入文件的字符串。执行该语句后,即将字符串str写入文件file中。26.1.3文件的读写6.1文件基本操作写文件write方法file.writelines(strlist)##以文本文件形式读取文件内容withopen('D:\\python\\ch6\\1.txt','w')asf:f.writelines([“hellopython!\n”,“Pythonisaprogramminglanguage!”])6.1.3文件的读写6.1文件基本操作tell方法和seek方法file.tell()返回当前指针的位置。file.seek(offset,whence)其中,whence为参考点,可选值有0,1,2,0表示从文件开头开始偏移,1表示从文件当前位置开始偏移,2表示从文件末尾开始偏移,offset为偏移量,是以字节为单位。注意:若以文本文件方式打开文件,则只允许从文件头(参考点为0)开始偏移,若以二进制方式打开文件,则三种偏移方式都可以。6.1.4文件定位6.1文件基本操作tell方法和seek方法6.1.4文件定位读D:\python\ch6\登鹳雀楼.txt,做tell()、seek()函数应用。withopen('登颧雀楼.txt','r+')asf:print(f.tell()) #显示当前指针位置s=f.readline()#读第一行print(s)#输出这一行print(f.tell()) #显示当前指针位置f.seek(0,2) #指针定位到结尾print(f.tell()) #显示当前指针位置,即文件长度运行结果:0白日依山尽,黄河入海流。26506.1文件基本操作os模块os.mkdir(dirpath)在dirpath指定的位置创建目录。os.getcwd()返回当前的工作目录路径。os.chdir(dirpath)改变工作目录为dirpath。os.listdir(dirpath)获取dirpath路径下所有的文件,返回该路径下所有文件的文件名构成的列表。os.remove(filename)删除文件filename。os.rmdir(dirpath)删除dirpath指定的空目录。注意,os.rmdir只能删除空目录,若不为空则报错。os.rename(old,new)将old文件重命名为new。6.1.5os库6.1文件基本操作os.path模块os.path.abspath(filename)通过该函数可以获取文件filename完整的路径,即绝对路径。os.path.basename(path)获取path里的文件名,若path本身是目录则返回空字符串。os.path.dirname(path)获取path里的目录部分。os.path.exists(path)判断path路径是否存在,若存在则返回True,否则返回False。os.path.getsize(path)返回文件或者目录的大小,如果文件不存在就返回错误,单位为字节。os.path.split(path)将path里的路径和名称分开,返回(路径,文件名)构成的元组。os.path.isfile(path)判断给出的路径是否是文件,文件不存在返回False。os.path.isdir(path)判断给出的路径是否是目录,目录不存在返回False。os.path.join(path,filename)连接path路径和filename文件。6.1.5os库6.1文件基本操作time模块time.time()获取当前时间戳,返回值为浮点数,计算从世界标准时间到当前时间之间的总秒数。time.ctime()获取当前时间,并以易读方式显示。os.path.split(path)将path里的路径和名称分开,返回(路径,文件名)构成的元组。time.gmtime()获取当前时间,并表示为计算机可以处理的格式。time.strftime(tpl,ts)借助时间格式控制符来输出格式化的时间字符串。其中tpl表示格式化的模板字符串参数,取值如下,ts表示计算机内部时间类型变量。time.sleep(s)
s表示拟休眠的时间,单位是秒,可以是浮点数。6.1.6time库6.1文件基本操作time模块time.strftime(tpl,ts)6.1.6time库importtimetime.gmtime()print(time.strftime("%Y-%m-%d%H:%M:%S",t))时间控制格式符含义%Y表示四位数的年份,取值范围为0001~9999,如1900。%m表示月份(01~12),例如10%d表示月中的一天(01~31)例如:23%H表示24小时制小时数(00~23),例如:14%M表示分钟数(00~59),例如46%S表示秒(00~59),例如26%B表示本地完整的月份名称,比如January%b表示本地简化的月份名称,比如Jan%a表示本地简化的周日期,Mon~Sun,例如Wed%A表示本地完整周日期,”Monday~Sunday,例如Wednesday%p表示上下午,取值为AM或PM6.1文件基本操作time模块time.strptime(str,tpl)通过tpl模板定义的参数逐一解析字符串中对应的每一个值,形成一个时间变量。转化成一个计算机内部可以操作的一个时间。输出格式为struct_time。其中tpl表示格式化的模板字符串参数,str表示字符串形式的时间。6.1.6time库importtimeprint(time.strptime("2023-5-2315:22:20",'%Y-%m-%d%H:%M:%S'))6.1文件基本操作time模块time.perf_counter()返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义,通常用于测量时间差。6.1.6time库importtimestart=time.perf_counter()end=time.perf_counter()print(end-start)6.2常用文件格式CSV(CommaSeparatedValues),即逗号分隔值(也称字符分隔值),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。在处理数据时通常会使用csv格式的文件。CSV文件可以通过Excel或者记事本打开,也可以使用文本编辑工具打开。一般的表格处理工具(Excel)都可以将数据另存为或者导出为CSV格式。CSV文件特点如下:(1)读取的数据一般为字符类型,若要得到数据类型,需要进行转换(2)以行为单位读取文件(3)列之间以逗号或者制表符分隔,通常为半角逗号6.2.1CSV格式文件6.2常用文件格式csv.reader()函数实现读取CSV数据格式的文件。csv.reader(file,dialect='excel')csv.writer()函数实现向CSV数据格式的文件写入数据。csv.writer(file,dialect='excel')6.2.1CSV格式文件6.2常用文件格式向D:\\python\\ch6\\2.csv文件写入数据,并打印输出。6.2.1CSV格式文件#向CSV文件写入数据importcsvwithopen("D:\\python\\ch6\\2.csv",'w',encoding='utf-8',newline='')asf:writer=csv.writer(f)writer.writerow(['jone',2204,66,67,68])writer.writerows([['michel',2205,76,77,78],['mike',2206,86,87,88]])datas=[['mini',2207,99,98,97],['jack',2208,96,97,68]]forrowindatas:
writer.writerow(row)6.2常用文件格式json模块是Python处理JSON格式数据的标准库。JSON格式是一种数据交换格式,采用文本存储数据对象的格式。json模块提供了处理JSON格式数据的函数。json.dump()方法实现将Python数据格式转换为JSON格式字符串,并返回结果至指定的文件。json.dump(obj,fp)参数obj为待转为JSON字符串格式的数据,fp为转换后结果记录文件。json.load()方法实现将JSON字符串转换为Python格式数据,与json.dump()函数互为逆操作。json.load(fp)参数fp为待读出JSON字符串的文件。通过该函数,将读出的JSON格式字符串转换为Python数据格式。6.2.2JSON格式文件6.2常用文件格式importjsonwithopen('D:\\jsontest1.json',encoding='utf-8')asf:data=json.load(f)print(data)print(type(data))6.2.2JSON格式文件6.2常用文件格式json.dumps()方法实现将Python数据格式转换为JSON格式字符串,并直接返回JSON格式字符串json.dumps(obj)
参数obj为待转为JSON字符串的Python格式数据。json.loads(str)
参数str为待转换的JSON格式的字符串。json.loads()方法实现将JSON格式字符串转换为Python数据格式,功能与json.load()函数相似,与json.dumps()函数互为逆操作。6.2.2JSON格式文件6.2常用文件格式importjsonstu='{"12345":"mike","12346":"jack","12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《脾破裂手术配合》课件
- 《看灯笼找算式题》课件
- 美的必修课(陕西工商职业学院)知到智慧树答案
- 咖啡文化与饮品调制(青岛酒店管理职业技术学院)知到智慧树答案
- 程控电话安装与调试 理论习题一
- 《圆柱的体积》课件2
- 水煤浆生产线项目可研报告
- 《绩效管理演讲稿》课件
- 《台阶轴编程加工》课件
- 2015年浙江义乌中考满分作文《我长大了》
- 应对考试失败的心态调整
- 重症患者急性胃肠损伤分级-AGI
- 高温熔盐电解镁技术
- 无人机技术的移动通信基站应用
- 《种子萌发形成幼苗》示范公开课教学设计【生物北师大七年级上册】
- 工业自动化在智能制造中的角色
- 新医改背景下公立中医综合医院发展的对策
- 一例压力性损伤的个案护理
- 河南省郑州市2023-2024学年高二上学期期期末生物试题【含答案解析】
- 银行进口付汇流程客户端课件
- 卓越绩效自评报告编写要求
评论
0/150
提交评论