十二、python文件

1、打开文件

  函数open将文件名作为唯一必不可少的参数,并返回一个文件对象。

  如果要写入文件,必须通过指定模式mode参数来显式地指出,默认模式为'rt'。

函数open的参数mode的常见取值
描述
'r' 读取模式(默认值)
'w' 写入模式
'x' 独占写入模式
'a' 附加模式
'b' 二进制模式(与其他模式结合使用,如rb,wb)
't' 文本模式(默认值,与其他模式结合使用)
'+' 读写模式(与其他模式结合使用)

  文件模式说明:(1)写入模式能够写入文件,并在文件不存在时创建它。

         (2)独占写入模式,在文件已存在时引发FileExistsError异常。

         (3)在写入模式下打开文件时,既有内容将被删除(截断),并从文件开头处开始写入。

         (4)要在既有文件末尾继续写入,可使用附加模式。

         (5)'+'可与其他任何模式结合起来使用,表示即可读取也可写入。

         (6)'r+'和'w+'的区别:后者会截断文件,前者不会。

  要指定其他编码和Unicode错误处理策略,可使用关键字参数encoding和errors。

  通常Python使用通用换行模式,通过关键字参数newline设置为空字符串。修改newline的值能修改相应的行尾换行字符。

2、文件的基本方法

   流类似于文件对象,支持文件对象的一些方法。

   三个标准流:(1)sys.stdin,标准输入流

         (2)sys.stdout,标准输出流

         (3)sys.err,标准错误流

  2.1 读取和写入

      通过f.write来写入数据

      通过f.read来读取数据

      

  2.2 使用管道重定向

      

       管道(|)将一个命令的标准输出链接到下一个命令的标准输入。

      随机存取

       方法seek(offset[,whence])将当前位置(执行读取或写入的位置)移到offset和whence指定的地方。

       方法tell。

  2.3 读取和写入行

      方法readline(n),指定最多读取n个参数,不指定时读取一行并返回它。

      方法readlines(),读取文件中的所有行,并以列表的方式返回它们。

      方法writelines(),接受一个字符串列表(任何序列或可迭代对象),并将这些字符串都写入到文件(或流)中,但是写入时不会添加换行符,因为必须自行添加。

  2.4 关闭文件

     在try/finally语句中调用close

      

      上下文管理器

      with语句能够打开文件并将其赋给一个变量,在语句体中,将数据处理,到达该语句末尾时,将自动关闭文件,即便出现异常亦如此。

      

  2.5 文件缓冲区

      open函数种的第三个可选参数buffering控制着文件的缓冲。

      如果参数是0,I/O操作就是无缓冲的,直接将数据写在硬盘上;如果参数是1,I/O操作就是有缓冲的,数据先写到内存里,只有使用flush函数或者close函数才会将数据更新到硬盘。

      如果参数为大于1的数字则代表缓冲区的大小(单位是字节),-1(或则是任何负数)代表使用默认缓冲区的大小。

    

原文地址:https://www.cnblogs.com/nuochengze/p/12449774.html