首页投稿(暂停使用,暂停投稿)python

我们来讲讲python的文件对象

2016-07-12  本文已影响2042人  junson

通常我们将对象一般包括这三点:


文件内建函数


关于open函数

open(file_name,access_mode,buffering)
filename:打开的文件名
access_mode:
这个文件的模式有点类似于C语言里面fopen()函数
'r','U' : 打开的文件必须是已经存在的
‘w’ : 模式打开的文件若存在则首先清空,然后重新创建
'a' : 该模式打开的文件是为了追加数据作准备的
'+' :表示可读可写
'b' : 表示二进制模式访问
buffering:表示访问文件是否采用缓冲的方式,0表示不缓冲,1表示只缓冲一行数据,任何其他大于1的值都代表使用给定值作为缓冲区的大小。不提供改参数或者使用负值代表使用系统默认的缓冲机制。
关于文件对象的访问模式:

文件模式 操作
r 以读方式打开
rU 或者 U 以读方式打开,同时提供通用换行符支持
w 以写方式打开,必要时清空
a 以追加模式打开,从EOF开始,必要时创建新的文件
r+ 以读写方式打开
w+ 以读写模式打开
a+ 以读写模式打开
rb 以二进制读模式打开
wb 以二进制写模式打开
ab 以二进制追加模式打开
rb+ 以二进制读写模式打开
wb+ 以二进制读写模式打开
ab+ 以二进制读写模式打开

关于file()函数

其实open()和file()函数可以任意替换,任何使用open函数的地方都可以用file函数来替换。

文件的内建方法

文件操作的内建方法主要包含四种方式:

os模块的一些属性 描述
linesep 用于在文件中分隔行的字符串
sep 用来分隔文件路径名的字符串
pathsep 用于分隔文件路径的字符串
curdir 当前工作目录的字符串名称
pardir (当前工作目录的)父目录字符串名称
文件对象方法 操作
file.close() 关闭文件
file.fileno() 返回文件的描述符
file.flush() 刷新文件的内部缓冲区
file.isatty() 判断file是否是一个类tty设备
file.next() 返回文件的下一行类似于file.readline()
file.read() 从文件读取size个字节,当未给定或给定负值的时候,读取剩余的所有字节,饭后作为字符串返回
file.readinto(buf,size) 读取size个字节到文件缓冲器中
file.readline(size) 从文件中读取并返回一行(包括行结束符),或返回最大size个字符
file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回(包含所有行的结束符);如果给定了sizhint且大于0,那么将返回总和大约为sizhit字节的行(大小由缓冲器容量的下一个值决定)(比如说缓冲器的大小只能为4K的倍数,如果sizhint的值为15k则返回的可能是16k)
file.seek(off,whence=0) 在文件中移动文件指针,从whence(0代表文件开始,1代表当前位置,2代表文件末尾)偏移off字节
file.tell() 返回当前文件中的位置
file.truncate(size=file.tell()) 截取文件到最大size字节,默认为当前文件位置
file.write() 向文件写入字符串
file.writelines() 向文件写入字符串序列seq

关于文件的内建属性

文件对象除了方法之外,还有一些数据属性,这些属性保存了文件对象相关的附加数据。

文件对象属性 操作
file.close 表示文件已经被关闭,否则为False
file.encoding 表示文件所使用的编码
file.mode 表示文件打开时的范问模式
file.name 表示文件已经被关闭,否则为False
file.newlines 表示文件所采用的分隔符
file.softspace 为0表示在输出一数据后,要再加上一个空格符,为1表示不加,这个属性一般用不到
上一篇下一篇

猜你喜欢

热点阅读