- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Python 文档:https://docs.python.org/2/library/functions.html#open
open(name[, mode[, buffering]])
上述文档说“可选的缓冲参数指定文件所需的缓冲区大小:0 表示无缓冲,1 表示行缓冲,任何其他正值表示使用(大约)该大小(以字节为单位)的缓冲区。负缓冲表示使用系统默认值。如果省略,则使用系统默认值。"。
当我使用
filedata = open(file.txt,"r",0)
或
filedata = open(file.txt,"r",1)
或
filedata = open(file.txt,"r",2)
或
filedata = open(file.txt,"r",-1)
或
filedata = open(file.txt,"r")
输出没有变化。上面显示的每一行都以相同的速度打印。
输出:
Mr. Bean is a British television programme series of fifteen 25-
minute episodes written by Robin Driscoll and starring Rowan Atkinson as
the title character. Different episodes were also written by Robin
Driscoll and Richard Curtis, and one by Ben Elton. Thirteen of the
episodes were broadcast on ITV, from the pilot on 1 January 1990, until
"Goodnight Mr. Bean" on 31 October 1995. A clip show, "The Best Bits of
Mr. Bean", was broadcast on 15 December 1995, and one episode, "Hair by
Mr. Bean of London", was not broadcast until 2006 on Nickelodeon.
那么open()函数中的缓冲参数有什么用呢?什么 值(value)
那个缓冲参数最好用?
最佳答案
启用缓冲意味着您不直接与操作系统的文件表示或其文件系统 API 进行交互。取而代之的是,从原始 OS 文件流中将一大块数据读取到缓冲区中,直到它被消耗,此时更多的数据被提取到缓冲区中。就您获得的对象而言,您将获得一个包装底层 RawIOBase
(代表原始文件流)的 BufferedIOBase
对象。
这样做有什么好处?与原始流的良好接口(interface)可能具有很高的延迟,因为操作系统必须使用诸如硬盘之类的物理对象,这可能并非在所有情况下都可以接受。假设您想每 5 毫秒从一个文件中读取三个字母,而您的文件位于一个易碎的旧硬盘上,甚至是一个网络文件系统上。与其每 5ms 尝试从原始文件流中读取一次,不如将文件中的一堆字节加载到内存中的缓冲区中,然后随意使用它。
您选择的缓冲区大小取决于您使用数据的方式。对于上面的示例,1 个字符的缓冲区大小会很糟糕,3 个字符会很好,并且不会对您的用户造成明显延迟的 3 个字符的任何大倍数都是理想的。
关于python - python 内置的 open() 函数中的缓冲有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712445/
我正在使用 MediaPlayer 在我的应用程序中播放在线 mp3 文件中的一些声音。 但是,即使在播放完成后,我也会在控制台中收到一行又一行的回调和缓冲。 10-24 08:08:48.467
我有一个简单的多边形。 dfr p = st_polygon(list(as.matrix(dfr))) > pbuf = st_buffer(p, .4) > plot(pbuf) > plot(
这可能又是一些愚蠢的问题,也许这确实是我所缺少的东西,但我很难让 glMultiDrawArrays 在 OpenGL4 中工作。 我发现了很多这样的解释: for (int i = 0; i #i
这仅仅是根据网络速度调整预缓冲内容量的问题吗?你是否在一开始就为此调整一次,每秒......? 或者它更复杂 - 对您的网络速度记录历史进行采样并取平均值/中值并对其进行调整? 最佳答案 您的第二段总
嗨,我正在使用 FFmpeg Autogen C#。当我使用 mkv 输出作为文件并使用 h264 rtsp 流作为输入时,一切正常。编解码器是 libx264 ffmpeg.avio_open(
我需要多次遍历几个文本文件的行。目前这是通过多个 with open("file.txt") as f: for line in f: # do something 虽然性能还
昨天给同学们写了一个xinetd小练习:做一个反向回显程序。 为了学习新东西,我尝试实现一个 Haskell 解决方案。琐碎的main = forever $ interact reverse不起作用
我正在阅读《实时渲染第三版》中的遮挡剔除部分,但我无法理解它是如何工作的。一些问题: “Z 金字塔”有何贡献?为什么我们需要多种分辨率的 Z 缓冲区?在书中,它的显示如下(左侧): 八叉树结构与用于一
我通过串行端口与设备通信。 我已成功获取 InputStream 并读取设备发送的内容。 但问题是,我根本不知道何时停止阅读并继续执行另一项任务。 这是简化的代码: inputStream = ser
我有以下代码: func (q *Queue) GetStreams(qi *QueueInfo) { channel := make(chan error, len(qi.AudioChun
在我调用 -play 之前,有没有办法让 MPMusicPlayerController 缓冲内容?还是在您设置队列时默认执行此操作? AVAudioPlayer 有 -prepareToPlay 方
我正在编写一个数据库 备份函数,从System.Diagnostics.Process 对象 读取StandardOutput (StreamReader) 属性。我已成功写入普通文件。 //This
我有一个 wpf 应用程序,其中所有 viewModel 都继承自实现 INotifyPropertyChanged 的类 NotifyPropertyChangeClass(见下文)。 我想限制
我需要类似于 withLatestFrom 的东西,对应于下图: ---------A-----------------B-- -1-2-3------4------5-6-7-8---- -----
有没有办法缓冲 OutputStream,在返回之前修改它?这是我的代码片段: public ServletOutputStream getOutputStream() throws IOExcept
目前我们有实现服务器通信协议(protocol)缓冲的需求。如果有人对此有任何意见,他们可以向我提供任何意见吗。 最佳答案 请查看以下 Protocol Buffer 链接。 http://code.
所以我目前正在开发一个 Java 应用程序,该应用程序应该将特定事件记录到数据库中。我希望每分钟最多有 15 到 20 次插入,基本上我想知道我是否应该为每个插入语句建立一个新连接,或者只要应用程序正
请考虑以下代码,包括两个线程 buffering_thread(用一条消息填充缓冲区指针)和 sending_thread(清空缓冲区): #include "msg.cpp" msg * buffe
是否可以在线播放由两个或多个视频文件组成的视频? 由于我原来的帖子不够清楚,这里有扩展的解释和问题。 我的站点托管在 Linux/Apache/PHP 服务器上。我有 FLV/F4V 格式的视频文件。
这是我用于缓冲和转换传入事件的代码: public Publisher> logs(String eventId) { ConnectableObservable connectableObs
我是一名优秀的程序员,十分优秀!