流:
打开文件:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None),打开一个文件并返回相应的对象;
file:文件名;
mode:打开模式,默认只读;
buffering:设置缓冲;
encoding:设置编码;
errors:报错级别;
newline:区分换行符;
closefd:传入的file参数类型;
opener:
mode参数:
r:读取模式(默认);
w:写入模式;文件存在从头开始写入,不存在则创建后写入;
x:新建一个文件写入,存在则异常
a:附加写入,不存在则创建后写入;
b:二进制模式;
t:文本模式;
+:打开一个文件进行更新(与其他模式结合使用);
r+:打开文件进行读写,读数据时从头开始读,写入时从最后开始写;
w+:打开文件进行读写,光标在开头,文件有内容则删除;
a+:打开文件进行读写,光标在结尾,从最后继续追加;
常用方法:fo=open('filename')
fo.close():关闭文件,对文件操作完必须要关闭打开的文件;
fo.flush():刷新文件内部缓冲,将内部缓冲区数据立刻写入文件;
fo.fileno():返回一个非0整型的文件描述符;
next(fo):返回文件下一行;
fo.read([size]):读取指定的字节数,英文与中文都是一个字节,不指定或为负则返回全部,游标跟随移动;
fo.readline([size]):读取整行包括\n,如果指定则返回字节数,游标跟随移动;
fo.readlines():读取所有行包括\n,返回一个以每行为元素组成的列表,此时数据会全部加载入内存;
fo.seek(offset[,whence]):方法用于移动文件读取指针到指定位置,offset偏移量,whence偏移的起始位置,0开头、1当前、2末尾;
fo.tell():返回当前的位置数;英文占一个字节,utf-8中文占三个字节;
fo.wirte(str):将字符串写入文件,文件关闭刷新之后,字符串才真正被写入;
fo.wirtelines([str]):向文件中写入一序列的字符串,换行需要制定换行符,["hello\n","world"];
fo.truncate([size]):从文件首字符开始截取指定的字符数,后面的字符会被删除,无参数则从当前位置开始;
fo.isatty():检测文件是否连接到一个终端设备,是返回True;