python中rb含义理解

Python文件读写的几种模式:

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

文件使用方式标识

  • 'r':默认值,表示从文件读取数据
  • 'w':表示要向文件写入数据,并截断以前的内容
  • 'a':表示要向文件写入数据,添加到当前内容尾部
  • 'r+':表示对文件进行可读写操作(删除以前的所有数据)
  • 'r+a':表示对文件可进行读写操作(添加到当前文件尾部)
  • 'b':表示要读写二进制数据。

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

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

示例:

二进制文件中存在如下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76

如果使用'r'进行读取,则读到第三个字节,即认为文件结束。

如果使用'rb'按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。

解决方案:

二进制文件就用二进制方法读取'rb'

总结:

使用'r'的时候,如果碰到'0x1A',就视为文件结束,就是EOF。使用'rb'则不存在这个问题,

即:如果你用二进制写入再用文件读出的话,如果其中存在'0x1A',就只会读出文件的一部分,使用'rb'会一直读取文件末尾。

知识点扩展:

  1. r是读取人工书写的数据,书写的时候是什么样子,读出来就是什么样。
  2. rb是读取二进制文件,非人工书写的数据如.jpeg等这些。
  3. 另外encoding可以指定解码格式,utf-8是现在的主流编码方式,如果没有指定encoding 的方式那么根据python版本的不同会有不同的解码方式,Python3中是utf-8,而python2中是ascii。

到此这篇关于python中rb含义理解的文章就介绍到这了,更多相关python中rb是什么意思内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中rb含义理解

    Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前的内容 'a':表示要向文件写入数据,添加到当前内容尾部 'r+':表示对文件进行可读写操作(删除以前的所有数据) 'r+a':表示对文件可进行读写操作(添加到当前文件尾部) 'b':表示要读写二进制数据. 读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认为

  • python中 @的含义以及基本使用方法

    目录 一.表示修饰符. 二.表示矩阵乘法. 总结 一.表示修饰符. 可以在模块或者类的定义层内对函数进行修饰.出现在函数定义的前一行,不允许和函数定义在同一行. 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错). 例1: def funA(desA): print("It's funA") def funB(desB): print("It's funB") @funA def fu

  • 对于Python中RawString的理解介绍

    总结 1.'''作用: 可以表示 "多行注释" ."多行字符串" ."其内的单双引号不转义" 2.r 代表的意思是: raw 3.r 只对其内的反斜杠起作用(注意单个 \ 的问题) raw string 有什么用处呢? raw string 就是会自动将反斜杠转义. >>> print('\n') >>> print(r'\n') \n >>> (注:出现了两个空行是因为 print() 会自

  • Python中@property的理解和使用示例

    本文实例讲述了Python中@property的理解和使用.分享给大家供大家参考,具体如下: 重看狗书,看到对User表定义的时候有下面两行 @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_ha

  • Python中super()的理解以及应用场景实例

    目录 一.前言 二.什么是super 三.super的常用使用场景 总结 一.前言 最近有粉丝向我咨询super相关的问题,说网上搜索到的教程不够通俗易懂,看了之后还是不太理解.所以在这里基于我自己的理解来讲解一下super. 二.什么是super 1.super也是一个类,是的.他不是一个方法也不是一个内置的关键字. class A: pass print(type(super(A))) 输出结果 <class 'super'> 直接通过查看super的源码也可以看出它是一个类 另外,网上很

  • 详解Python中最难理解的点-装饰器

    本文将带领大家由浅入深的去窥探一下,这个装饰器到底是何方神圣,看完本篇,装饰器就再也不是难点了. 一.什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个人都有的内裤主要是用来遮羞,但是到了冬天它没法为我们防风御寒,肿木办? 我们想到的一个办法就是把内裤改造一下,让它变得更厚更长,这样一来,它不仅有遮羞功能,还能提供保暖,不过有个问题,这个内裤被我们改造成了长裤后,虽然还有遮羞功能,但本质上它不再是一条真正的内裤了.于是聪明的人们发明长裤 在不影响内裤的前提下,直接把长

  • int在python中的含义以及用法

    Python int() 函数 描述 int() 函数用于将一个字符串或数字转换为整型. 语法 以下是 int() 方法的语法: class int(x, base=10) 参数 x -- 字符串或数字. base -- 进制数,默认十进制. 返回值 返回整型数据. 实例 以下展示了使用 int() 方法的实例: >>>int() # 不传入参数时,得到结果0 0 >>> int(3) 3 >>> int(3.6) 3 >>> int

  • pow在python中的含义及用法

    pow()方法返回xy(x的y次方) 的值 语法 以下是math模块pow()方法的语法: import math math.pow( x, y ) 内置的pow()方法 pow(x, y[, z]) 函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z 注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float. 参数 x -- 数值表达式.y -- 数值表达式.z -- 数值表达式. 返回值 返回

  • 关于Python中*args和**kwargs的深入理解

    目录 1. 理解  *  和  ** 2.Python函数的参数 3. 支持任意参数的函数 *args, **kwargs 4. 固定位置参数和关键字参数  /   * 5. **的另一个用法, 字典合并 总结: 1. 理解  *  和  ** Python的赋值语句可以解包将可迭代元素剥离出来 In [6]: a, b, c = [1, 2, 3] In [7]: a Out[7]: 1 In [8]: b Out[8]: 2 In [9]: c Out[9]: 3 赋值语句可以理解为 a,

  • python中最小二乘法详细讲解

    python中在实现一元线性回归时会使用最小二乘法,那你知道最小二乘法是什么吗.其实最小二乘法为分类回归算法的基础,从求解线性透视图中的消失点,m元n次函数的拟合,包括后来学到的神经网络,其思想归根结底全都是最小二乘法.本文向大家介绍python中的最小二乘法. 一.最小二乘法是什么 最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出). 二.最小二乘法实现原理 通过最小化误差的平方和寻找数据的最佳函数匹配. 三.最小二乘法功

随机推荐