python内置函数open的解释_在python的内置open()函数中缓冲的用途是什么?
Python文檔:http:/ / / 2 /圖書館/ functions.html docs.python.org #開放
open(name[, mode[, buffering]])
上面的文檔應(yīng)該提醒說"可選參數(shù)文件緩沖的緩沖所需的緩沖區(qū)大小:0均值,均值線1具有積極的價(jià)值,任何其他使用一個(gè)緩沖的均值(約),大小(字節(jié))。a負(fù)均值使用默認(rèn)緩沖系統(tǒng)。如果omitted,系統(tǒng)默認(rèn)是"。當(dāng)我使用
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.
那么如何在緩沖參數(shù)open()函數(shù)是有用的?什么價(jià)值
(這是最好的緩沖參數(shù)的使用?
我可能是錯(cuò)的,但我相信緩沖只有在打開一個(gè)文件進(jìn)行寫入時(shí)才有明顯的效果,在這種情況下緩沖輸入,直到到達(dá)新行或關(guān)閉文件為止。這可能會(huì)更快一些。
將緩沖區(qū)設(shè)置為1時(shí),將只顯示一行緩沖數(shù)據(jù),如果為負(fù)數(shù),則緩沖區(qū)大小將為系統(tǒng)默認(rèn)值。
你問這個(gè)問題是對(duì)的,我反對(duì)。手冊(cè)和教程是為自己編寫的人編寫的!他們說,"如果緩沖值設(shè)置為0,就不會(huì)發(fā)生緩沖。"那么,什么緩沖先生?我知道超過15種編程語言,而且我從未聽說過這種緩沖方式!
啟用緩沖意味著您沒有直接與操作系統(tǒng)的文件表示或其文件系統(tǒng)API接口。相反,只有一塊數(shù)據(jù)從原始OS文件流讀取到緩沖區(qū)中,直到它被使用為止,此時(shí)更多的數(shù)據(jù)將被提取到緩沖區(qū)中。對(duì)于您得到的對(duì)象,您將得到一個(gè)BufferedIOBase對(duì)象,該對(duì)象包裝一個(gè)底層RawIOBase(表示原始文件流)。
這有什么好處?與原始流的良好接口可能具有很高的延遲,因?yàn)椴僮飨到y(tǒng)必須與硬盤等物理對(duì)象進(jìn)行混淆,在許多情況下可能不適用。假設(shè)您想每5毫秒從一個(gè)文件中讀取三個(gè)字母,并且您的文件位于硬殼舊硬盤上,甚至是網(wǎng)絡(luò)文件系統(tǒng)上。與其嘗試每隔5毫秒從原始文件流中讀取一次,不如將一組文件加載到內(nèi)存中的緩沖區(qū)中,然后隨意使用它。
您選擇的緩沖區(qū)大小將取決于您使用數(shù)據(jù)的方式。對(duì)于上面的示例,1個(gè)字符的緩沖區(qū)大小將非常糟糕,3個(gè)字符也可以,任何3個(gè)字符的大倍數(shù)都不會(huì)對(duì)用戶造成明顯的延遲,這是理想的。
您還可以通過從IO模塊調(diào)用只讀默認(rèn)緩沖區(qū)大小屬性來檢查默認(rèn)緩沖區(qū)大小。
import io
print (io.DEFAULT_BUFFER_SIZE)
雖然這可能會(huì)回答作者的問題,但它缺少到文檔的鏈接。請(qǐng)編輯您的答案。
總結(jié)
以上是生活随笔為你收集整理的python内置函数open的解释_在python的内置open()函数中缓冲的用途是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spss数据_怎么建立SPSS数据库、录
- 下一篇: python写一个路径选择app_dja