• 【转载】python基础-文件读写'r' 与 'rb' 和‘r+'与’rb+'区别


    【转载链接:https://www.cnblogs.com/nulige/p/6128948.html】
     
    一、Python文件读写的几种模式:
    r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢?
     
    1、文件使用方式标识
    'r':默认值,表示从文件读取数据。
    'w':表示要向文件写入数据,并截断以前的内容
    'a':表示要向文件写入数据,添加到当前内容尾部
    'r+':表示对文件进行可读写操作(删除以前的所有数据)
    'r+a':表示对文件可进行读写操作(添加到当前文件尾部)
    'b':表示要读写二进制数据
     
    2、读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认为字节x1A(26)转换成的字符为文档结束符(EOF),
          故使用'r'进行读取二进制文件时,可能会出现文档读取不全的现象。
     
    示例:
         二进制文件中存在如下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76
         如果使用'r'进行读取,则读到第三个字节,即认为文件结束。
         如果使用'rb'按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。
     
     
    解决方案:
         二进制文件就用二进制方法读取'rb'
     
      总结:
         使用'r'的时候,如果碰到'0x1A',就视为文件结束,就是EOF。使用'rb'则不存在这个问题,
     
    即:如果你用二进制写入再用文件读出的话,如果其中存在'0x1A',就只会读出文件的一部分,
    使用'rb'会一直读取文件末尾。

  • 相关阅读:
    PAT甲级1060 Are They Equal【模拟】
    PAT甲级1131 Subway Map【dfs】【输出方案】
    PAT甲级1052 Linked List Sorting
    Dev的GridControl控件选择框的使用
    关于MongoDB数据库中文件唯一性的问题
    docker-学习笔记5-存储卷
    docker-学习笔记4-网络
    docker-学习笔记3-镜像基础
    docker-学习笔记2-基础用法
    docker-学习笔记1-基础入门
  • 原文地址:https://www.cnblogs.com/Suomy/p/10028093.html
Copyright © 2020-2023  润新知