Python pySerial:flush vs reset_input_buffer+;复位输出缓冲区

Python pySerial:flush vs reset_input_buffer+;复位输出缓冲区,python,serial-port,pyserial,flush,Python,Serial Port,Pyserial,Flush,我试图使用pySerial==3.4,发现serial.serial.flush()上的文档非常缺乏: 文件类对象的刷新。在这种情况下,请等待所有数据都被删除 书面的 问题 什么是“类文件对象” 正在冲洗什么 什么时候可以使用刷新,而不是单独重置输入/输出缓冲区 serial=串行(“COM3”) #选择1 serial.flush() #选择2 串行.复位\输入\缓冲区() 串行.复位输出缓冲区() 相关问题 看起来是这样的: 什么是“类文件对象”? 类文件对象主要是Stri

我试图使用
pySerial==3.4
,发现
serial.serial.flush()
上的文档非常缺乏:

文件类对象的刷新。在这种情况下,请等待所有数据都被删除 书面的


问题

  • 什么是“类文件对象”
  • 正在冲洗什么
  • 什么时候可以使用
    刷新
    ,而不是单独重置输入/输出缓冲区
serial=串行(“COM3”)
#选择1
serial.flush()
#选择2
串行.复位\输入\缓冲区()
串行.复位输出缓冲区()

相关问题

看起来是这样的:

什么是“类文件对象”?

类文件对象主要是StringIO对象、连接的套接字和well。。实际文件对象。如果一切正常,urllib.urlopen()还会返回一个类似objekt的文件,支持必要的方法


文件对象的同义词


向底层资源公开面向文件的API(使用read()或write()等方法)的对象。根据文件对象的创建方式,文件对象可以通过中介访问磁盘上的真实文件或其他类型的存储或通信设备(例如标准输入/输出、内存缓冲区、套接字、管道等)。文件对象也称为类似文件的对象或流

实际上有三类文件对象:原始二进制文件、缓冲二进制文件和文本文件。它们的接口在io模块中定义。创建文件对象的规范方法是使用open()函数

io模块提供Python处理各种类型I/O的主要工具。有三种主要类型的I/O:文本I/O、二进制I/O和原始I/O。这些都是通用类别,每个类别都可以使用各种备份存储。属于上述任何类别的具体对象称为文件对象。其他常用术语是流和类似文件的对象

正在冲洗什么?

保存在输出缓冲区中的数据

什么时候使用flush而不是单独重置输入/输出缓冲区?

已输出数据(
write()
),将在关闭前调用该数据

flush()
与输入缓冲区或
reset\u input\u buffer()
无关

flush()
flush()
将输出缓冲区中的所有数据发送给对等方,而
reset\u output\u buffer()
丢弃输出缓冲区中的数据


清除输出缓冲区,中止当前输出并丢弃缓冲区中的所有内容

注意,对于某些USB串行适配器,这可能只会刷新操作系统的缓冲区,而不会刷新USB部件中可能存在的所有数据


谢谢你@kunif!还有一个问题:这是否意味着在每次serial.write之后,我应该调用serial.flush?逻辑是确保在继续之前写入所有内容。当需要在严格的时间进行轮询或响应时,或者当整个系统上的负载很高且写入和传输之间经常出现时滞时,这可能是必要的。如果没有问题,就没有必要了。