Python 文件对象

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)文件的属性

    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()          清除输出缓冲区
posted @ 2017-07-02 20:01  fanison  阅读(426)  评论(0编辑  收藏  举报