当前位置: 首页 > 后端技术 > Python

大话 Python:python 基础巩固 -- 文件 I-O 与 File 对象的应用

时间:2023-03-25 22:13:11 Python

谈Python:夯实python基础——文件I/O和File对象的应用File文件对象相关函数的掌握。与其他面向对象语言相比,文件流的使用比较简单,而且提供了很多文件打开方式,比较优秀。1、全局函数open()有很多可选参数。一般在读取文件时,只需要文件路径和文件打开方式即可完成大部分使用场景。使用open()函数打开文件后,返回一个File文件对象,然后使用File对象的内部函数对文件进行操作。需要注意的是,文件对象操作完成后必须关闭文件。1open('/usr/load/download/20210320/test.txt',mode='r')open()函数的完整语法格式1open('/usr/load/download/20210320/test.txt',mode='r',buffering=-1,2encoding=None,errors=None,newline=None,closefd=True,opener=None)open()函数完整语法格式中的每个可选参数代表什么?1file:必填参数项--打开文件的路径(支持相对路径和绝对路径)2mode:可选参数项--文件打开模式,默认为只读模式3mode参数值的常用格式4#打开模式5'b':--以二进制模式打开6't':--以文本模式打开(默认模式)7'+':--以读写模式打开8'u':--打开inuniversalnewlinemode9#操作模式10'r':--以只读模式打开11'w':--以只写模式打开12'a':--以附加模式打开13#组合模式,combineopenmode和operationmode组合,以下是常用组合14'r+':--以文本读写方式打开15'w+':--以文本读写方式打开16'a+':--以文本方式打开read-writemode17buffering:可选参数项——设置缓冲区,设置缓冲区是为了减少IO的使用,一般设置0(二进制模式关闭缓冲区),1(文本模式一行缓冲区),>1(初始化缓冲区的大小)18encoding:可选参数——文件编码,ge一般使用utf-8编码。19errors:可选参数——设置错误报告级别。如果为None,则不会设置。严格的时候,有字符编码问题就会报错。可选参数项--区分换行符,只对文本模式有效,一般情况下可以取值None,'n','r','','rn'自定义换行21closefd:可选参数项--pass输入文件参数类型,为True时,参数类型表示文件名,为False时,为文件描述符22opener:可选参数项--设置一个自定义的opener,返回值必须是一个open文件描述符。2.File文件操作对象File->file_obj.write(string)1#以只写方式打开文件2file_obj=open("/usr/load/test.txt","w")3#定义原始数据4string="PythonConcentrationCamp"5#将字符串写入文件6file_obj.write(string)7#关闭文件8file_obj.close()File->file_obj.tell()1#以读写模式打开文件2file_obj=open("/usr/load/test.txt","rw+")3current_data=file_obj.tell()4print"当前数据位置:",current_dataFile->file_obj.read([size])1#打开文件2file_objinread-writemode=open("/usr/load/test.txt","rw+")3#获取文件名4print"Filename:",file_obj.name5#读取5个字节6data1=file_obj.read(5)7#读取整个文件8data2=file_obj.read(-1)File->file_obj.next()1#以读写方式打开文件2file_obj=open("/usr/load/test.txt","rw+")3#获取文件名4print"Thefilenameis:",file_obj.name5foriinrange(10):6#读取下一行7data_line=file_obj.next()8print"Line%d-%小号"%(i,data_line)9#关闭文件10file_obj.close()File->file_obj.readline([size])1#以读写方式打开文件2file_obj=open("/usr/load/test.txt","rw+")3#获取文件名4print"Thefilenameis:",file_obj.name5#读取一行10个字节6data_line1=file_obj.readline(10)7#读取第8行data_line2=file_obj.readline()File->file_obj.readlines([size])1#以读写方式打开文件2file_obj=open("/usr/load/test.txt","rw+")3#获取文件名4print"Filename:",file_obj.name5#readlines()函数读取所有行6#遍历每一行7fordata_lineinfile_obj.readlines():8#在开始和结束9data_line=data_line.strip()test.txt“,“rw+”)3#获取文件名称4print“文件名:”,file_obj.name5#refreshbuffer6file_obj.flush()7#关闭文件8file_obj.close()File->file_obj.close()1#以读写方式打开文件2file_obj=open("/usr/load/test.txt","rw+")3#获取文件name4print"文件名:",file_obj.name5#关闭文件6file_obj.close()更多精彩进微信公众号【Python集中营】,专注后端编程实践,原创文章每天更新!