Python基础文件读写操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础文件读写操作相关的知识,希望对你有一定的参考价值。

1,open(),对文件进行读写操作之前,要先打开文件,获取文件的句柄

1、open(file_name[,access_mode][,buffering])

(1)参数说明
file_name:一个包含了你要访问的文件路径及文件名称的字符串值。尽量使用绝对路径
access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r)
r,只读
w:写之前会清空文件的内容
a:追加的方式,在原本内容中继续写
buffering:先写到缓存中
如果buffering的值被设置为0,就不会有寄存;如果值为1,访问文件时会缓存行;如果值位大于1的整数,表明了这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。该参数也是非强制性的。
(2)返回值
该语句表示返回的File_object是一个指向文件的指针(一个文件对象)文件句柄。当以只读模式(r)打开一个不存在的文件时,就会报IOError异常(文件不存在),但如果是以写或追加模式(w/a/a+)打开一个不存在的文件时,默认会创建该文件,但如果是所在路径中有目录不存在,也会报IOError异常
 
创建一个文件:
fp=open(‘d:\\tmp\\01.txt‘,w ) #创建并打开文件01.txt,用写的方式,文件句柄赋给fp
2、文件操作模式
r,w,a
r+:可读可写
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
 
rb wb ab 读写二进制
3,获取文件句柄后,就可以对文件进行操作了,常用操作方法
(1)fp.closed#判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false
(2)fp.mode#输出读写模式。返回被打开文件的访问模式。
(3)fp.name#返回文件的名称。
(4)fp.close()#刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
(5)flush()#把缓冲区中的内容持久化写到磁盘里,缓存区写满的情况,系统会自动调用flush()方法。
(6)next()#返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的
(7)seek(offset)#文件指针移动到oofset位置,空标识移动到0位置
(8)tell()#返回文件操作标记的当前位置,以文件的开头为原点 ;
(9)裁剪文件truncate([size])
        用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
        f1.truncate()#清空文件
4,文件的读写
(1)read([size]) #size:读取的长度,以byte为单位。如果不指定参数,表示一次性读取全部内容,以字符串形式返回,并且每一行结尾会有一个"\n"符号
(2)readline([size]) #调一次读取一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且结尾会有一个换行符"\n"。读完一行,文件操作标记移动到下一行的开头。返回的是字符串
(3)readlines([size]) 
###读取文件的全部内容,这个函数的内部是通过循环调用readline()来实现的,返回的是列表格式,每一行是列表的一个元素,并且结尾会有一个换行符"\n"
(4)write(str) #把str写到文件中,write()并不会在str后加上一个换行符 ,只能写字符串
(5)writeline()#每次只写入一行
(5)writelines(seq) 
seq:把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符。
注意:writelines()方法是针对列表的操作。它接收一个字符串列表作为参数,也就是seq是一个列表
 
 
 





以上是关于Python基础文件读写操作的主要内容,如果未能解决你的问题,请参考以下文章

Python基础入门-文件读写

python基础之文件读写

python基础之文件处理

python基础-文件读写'r' 和 'rb'区别

Python 文件读写操作-Python零基础入门教程

Python编程基础13:文件读写操作