Python文档:http:/ / / 2 /图书馆/ functions.html docs.python.org #开放
1open(name[, mode[, buffering]])
上面的文档应该提醒说"可选参数文件缓冲的缓冲所需的缓冲区大小:0均值,均值线1具有积极的价值,任何其他使用一个缓冲的均值(约),大小(字节)。a负均值使用默认缓冲系统。如果omitted,系统默认是"。当我使用
1filedata = open(file.txt,"r",0)
或
1filedata = open(file.txt,"r",1)
或
1filedata = open(file.txt,"r",2)
或
1filedata = open(file.txt,"r",-1)
或
1filedata = 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()函数是有用的?什么价值
(这是最好的缓冲参数的使用?
我可能是错的,但我相信缓冲只有在打开一个文件进行写入时才有明显的效果,在这种情况下缓冲输入,直到到达新行或关闭文件为止。这可能会更快一些。
将缓冲区设置为1时,将只显示一行缓冲数据,如果为负数,则缓冲区大小将为系统默认值。
你问这个问题是对的,我反对。手册和教程是为自己编写的人编写的!他们说,"如果缓冲值设置为0,就不会发生缓冲。"那么,什么缓冲先生?我知道超过15种编程语言,而且我从未听说过这种缓冲方式!
启用缓冲意味着您没有直接与操作系统的文件表示或其文件系统API接口。相反,只有一块数据从原始OS文件流读取到缓冲区中,直到它被使用为止,此时更多的数据将被提取到缓冲区中。对于您得到的对象,您将得到一个BufferedIOBase对象,该对象包装一个底层RawIOBase(表示原始文件流)。
这有什么好处?与原始流的良好接口可能具有很高的延迟,因为操作系统必须与硬盘等物理对象进行混淆,在许多情况下可能不适用。假设您想每5毫秒从一个文件中读取三个字母,并且您的文件位于硬壳旧硬盘上,甚至是网络文件系统上。与其尝试每隔5毫秒从原始文件流中读取一次,不如将一组文件加载到内存中的缓冲区中,然后随意使用它。
您选择的缓冲区大小将取决于您使用数据的方式。对于上面的示例,1个字符的缓冲区大小将非常糟糕,3个字符也可以,任何3个字符的大倍数都不会对用户造成明显的延迟,这是理想的。
您还可以通过从IO模块调用只读默认缓冲区大小属性来检查默认缓冲区大小。
1
2import io
print (io.DEFAULT_BUFFER_SIZE)
虽然这可能会回答作者的问题,但它缺少到文档的链接。请编辑您的答案。