Python 文件对象函数
1)
内置函数 open() 用于打开和建立文件对象编码
open(name,[,mode[,bufsize]]) 文件名、模式、缓冲区参数 mode: r 只读 w 写入 a 附加 使用 + 同时支持输入、输出操做 r+ w+ a+ 附加 b 表示以二进制方式打开 rb wb ab bufsize: 0 禁用缓冲 1 使用缓冲,仅缓冲一行数据 负数 使用系统默认缓冲 正数 指定缓冲空间大小 例如: file1 = open('/etc/fstab',r+) 注意使用 r r+ 不能打开不存在的文件会产生IO错误
2)文件的属性spa
f.closed 显示文件是否关闭 f.name 显示当前名称 f.encoding 编码格式 f.mode 当前文件打开模式 f.softspace 在使用print语句时,是否在一个值以前打印空格,默认为0。若需打印则 f.softspace = 1 f.newlines 返回到当前为止读取到的行结束符字串,若无行分隔符则为None
3)文件的方法指针
f.tell() 当前指针在文件中字节位置 f.tell(0) f.next() 迭代显示,不会移动指针 f.close() 关闭文件 f.fileno() 返回文件描述符 f.readline() 读取返回一行,会移动指针 f.readlines() 以列表形式返回全部行 f.read() 读n个字节 f.read(10) f.write() 写入数据 注意: 文件方法read()等在读取文件时,会一并读取其行结束符 文件方法write()执行写出操做时,不会自动为其添加行结束符 f.writelines() 将列表中全部字串当作一行写入 import os l1 = os.listdir('/etc') f1.writelines(l1) f1.flush() 以上输出为一行 l2 = [ i + '\n' for i in os.listdir('/etc')] f1.writelines(l2) f1.flush() 此方法会保证每一个字串一行,用列表解析的方式在每次循环后加入换行符 f.isatty() 是否为终端设备文件 f.truncate() 截取n个字节 f1.truncate(10) 截取10个字节 f1.truncate(f1.tell()) 只截取到当前指针处 f.seek(offset[,whence]) 指针偏移位置 whence: 起点 0: 从文件头 1:从当前位置 2:从文件尾部 offset: 偏移量 f1.seek(0) 回到首部 f.flush() 清除输出缓冲区