zoukankan      html  css  js  c++  java
  • 十二、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(或则是任何负数)代表使用默认缓冲区的大小。

        

  • 相关阅读:
    centos 8 yum 重装
    Flask 和 Vue.js 开发及整合部署实例
    git报错fatal: unable to access 'https://****.com/c*****5/ecmall.git/': Could not resolve host: gitlab.***k.com
    CentOs服务器下安装两个个MySql数据库踩坑日记
    10-网络芯片CH395Q学习开发-模块使用Socket0作为UDP广播通信
    9-网络芯片CH395Q学习开发-模块使用Socket0作为UDP和电脑上位机UDP局域网通信
    8-网络芯片CH395Q学习开发-模块使用Socket0作为TCP服务器和电脑上位机TCP客户端局域网通信(单连接和多连接)
    7-网络芯片CH395Q学习开发-模块使用Socket0-5作为6路TCP客户端和电脑上位机TCP服务器局域网通信(Socket缓存区配置)
    6-网络芯片CH395Q学习开发-模块使用Socket0-3作为4路TCP客户端和电脑上位机TCP服务器局域网通信
    5-网络芯片CH395Q学习开发-模块使用Socket0作为TCP客户端和电脑上位机TCP服务器局域网通信
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12449774.html
Copyright © 2011-2022 走看看