zoukankan      html  css  js  c++  java
  • 解析文本文件 "r" 与 "rb" 模式的区别(Python)

    r,rb 那么在读文件时,有无b标识的的主要区别在哪里呢?

    1、文件使用方式标识

    'r':默认值,表示从文件读取数据。
    'b':表示要读写二进制数据

    2、读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认为字节x1A(26)转换成的字符为文档结束符(EOF),

          故使用'r'进行读取二进制文件时,可能会出现文档读取不全的现象。

    示例:
         二进制文件中存在如下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76
         如果使用'r'进行读取,则读到第三个字节,即认为文件结束。
         如果使用'rb'按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。


    解决方案:
         二进制文件就用二进制方法读取'rb'

    一句话:

    • r:Python 将会按照编码格式进行解析,read() 操作返回的是str
    • rb:也即 binary mode,read()操作返回的是bytes
  • 相关阅读:
    Java 反射
    类中静态/普通/构造初始化顺序
    计算机世界中的0和1
    Java并发练习
    HashMap底层
    HashMap 与 Hashtable 的区别
    为什么重写了equals() 就要重写hashcode()
    干货型up主
    JSP页面元素
    重定向与请求转发的区别
  • 原文地址:https://www.cnblogs.com/data2value/p/9760034.html
Copyright © 2011-2022 走看看