class io.BufferedIOBase
  是支持某些缓冲区的二进制流的基类。它继承自IOBase,没有公共的构造器。和RawIOBase主要的区别在于,方法read(),readinto()和write()会尽可能(分别)的多读所请求的输入或者尽可能的输出所有给定的输出,以牺牲多个系统调用为代价。

  另外,如果底层原始流处于非阻塞模式并且无法获取或提供足够的数据时,那些方法可能会引发BlockingIOError错误;和RawIOBase不同的是,他们永远不会返回None。

  此外,read()方法没有一个按照readinto()的默认实现。

  典型的BufferedIOBase的实现不应该继承自RawIOBase实现,但是wrap部分,比如BufferedWriter和BufferedReader却是继承自RawIOBase的实现。

  BufferedIOBase提供或者重写了从IOBase中继承来的属性和方法。
raw:
BufferedIOBase处理的底层原始流,这不是BufferedIOBase的API的一部分,可能在某些实现中不存在。

detach()将底层原始流从缓冲区中分开并返回在原始流被分离之后,该缓冲区变为不可用状态某些缓冲区,比如BytesIO,没有从该方法中返回单个原始流的概念,它们会引UnsupportedOperation。read(size=-1)读取并返回至多size大小的字节。如果参数被省略,或者为None,或者为负数,那么读取 直到遇到EOF才停止,并且将数据返回。
如果流中游标已经是EOF处,那么返回的是一个空的字节对象。如果参数是正数,并且底层原始流不是可交互式的,那么发出多个原始读取操作以读满需要的字节数(除非首先到达EOF)。但是对于交互式原始流,最大只会发出一个原始读取操作,短的结果并不意味着即将遇到EOF。如果底层原始流处于非阻塞模式,并且目前没有可用数据,则会引发BlockingIOError错误。readl(size=-1)读取并返回至多size大小的字节,最多值只能调用一次预测底层原始流的read()(或者readinto()方法)方法。这将是非常有用的,如果您在BufferedIOBase对象上实现自己的缓冲区。readinto(b)读取字节到一个已经指定大小的,可以写的类字节对象b中,并且返回读取的字节数。和read()类似,多个读取操作可能被发给底层原始流,除非后者是可交互的。如果底层原始流处于非阻塞模式,并且目前没有可用数据,则会引发BlockingIOError错误。readintol(b)读取字节到一个已经指定大小的,可写的类字节对象b中,最多只能调用一次底层原始流的read()(或者readinto())方法。
返回读取的字节数量。如果底层原始流处于非阻塞模式,并且目前没有可用数据,则会引发BlockingIOError错误。write(b)将给定的类字节对象b写入,并且返回写入的字节数(总等于b的长度(以字节为单位),如果写入失败,则会引发OSError)。根据实际的实现,这些字节可能正准备写入到底层流中,或者由于性能和延迟原因而被保存在缓冲区中。当在非阻塞模式下时,如果数据需要写入原始流,但是不使用阻塞又无法接受所有数据时,则会引发BlockingIOError错误。该方法返回后,调用者可能会释放或者改变b对象,所以在调用该方法期间,实现部分只能访问对象b。

Python中BufferedIOBase相关推荐

  1. python中的open函数

    python中的open函数 open函数用于文件处理 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = open('文件路径', '模式') 打开文件时,需要指 ...

  2. Python中IO概述

      Python中的io模块是用来处理各种类型的I/O操作流.主要有三种类型的I/O类型:文本I/O(Text I/O),二进制I/O(Binary I/O)和原始I/O(Raw I/O).它们都是通 ...

  3. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  4. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  5. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  6. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  7. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  8. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  9. [翻译]Python中yield的解释

    问题: Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码 def node._get_child_candidates(self, distance, min_dist ...

最新文章

  1. Session与request的使用
  2. 网络营销外包浅析B站破圈运营是如何增强网络营销能力的?
  3. jQuery UI Widget(1.8.1)工作原理--转载
  4. Spring基于Setter函数的依赖注入(DI)
  5. plt.axis()用法详解
  6. CompletableFuture详解~getNow
  7. html整体引入js,html页面用js引入js的方式
  8. 游戏中的“战争黑雾”和现实中的程序员处境
  9. 使用ladash判断集合中是否有
  10. java中的枚举_Java中的枚举
  11. python 判断某个字符是否为中文
  12. 将VBB文件转换成XML文件
  13. 那些年你不能错过的之【Linux操作】
  14. python查找excel中重复数据_python中查找excel某一列的重复数据剔除之后打印
  15. Axure使用教程(三)、母版、Chart图表元件库
  16. 模块化开发RequireJS之shim配置
  17. html背景只向x轴扩散,地球化学(复习资料)
  18. Tableau 将 null 值显示在 0 处 (ZN 函数 或 显示特殊值)
  19. SEED LABS初入
  20. 文件拖到ads快捷方式打不开

热门文章

  1. 变化的你--写给宝宝
  2. 用移动智能设备访问Ossim系统
  3. Spring Cloud 全家桶 入门介绍
  4. 【Linux】设置虚拟内存
  5. 容器编排技术 -- 使用Minikube在Kubernetes中运行应用
  6. NodeJS 使用官方oracledb库连接数据库教程
  7. Primefaces,Hibernate和SpringRoo集成
  8. JSON与Protocol Buffers的一些比较
  9. BGP——Peer Group(讲解+配置)
  10. Flutter Plugin开发流程