最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用open函數(shù)的buffering設(shè)置文件緩沖方式

 更新時(shí)間:2024年02月10日 10:03:29   作者:AllardZhao  
這篇文章主要介紹了Python使用open函數(shù)的buffering設(shè)置文件緩沖方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

如何設(shè)置文件的緩沖

實(shí)際案例

將文件內(nèi)容寫(xiě)到硬件設(shè)備時(shí),使用系統(tǒng)調(diào)用,這類I/O操作的時(shí)間很長(zhǎng)。

為了減少I/O操作的次數(shù),文件通常使用緩沖區(qū)。

(有足夠多的數(shù)據(jù)才進(jìn)行系統(tǒng)調(diào)用)文件的緩沖行為,分為全緩沖、行緩沖、無(wú)緩沖。

如何設(shè)置python中文件對(duì)象的緩沖行為?

python文件對(duì)象默認(rèn)的緩沖行為4個(gè)字節(jié)(4096)

解決方案

  • 全緩沖:open函數(shù)的buffering設(shè)置為大于1的整數(shù)n,n為緩沖區(qū)大小。
  • 行緩沖:open函數(shù)的buffering設(shè)置為1 。
  • 無(wú)緩沖:pen函數(shù)的buffering設(shè)置為0。

注意:

都是在python交互模式下進(jìn)行的操作,如果是用腳本,腳本運(yùn)行完關(guān)閉文件對(duì)象,緩沖區(qū)內(nèi)容就會(huì)寫(xiě)到磁盤中,這樣就觀察不了緩沖區(qū)不同大小的行為了。

文件緩沖介紹?

對(duì)于磁盤這類的塊設(shè)備,它的讀寫(xiě)不是一個(gè)字節(jié)一個(gè)字節(jié)完成的,而是按塊每次讀寫(xiě)一個(gè)塊,假設(shè)一個(gè)塊的大小是4096個(gè)字節(jié),那就意味著寫(xiě)入一個(gè)字節(jié)和寫(xiě)入4096個(gè)字節(jié)都需要一次I/O操作,它們的用時(shí)是相同的。

在這種情況為了提高效率就要減少I/O操作的次數(shù),使用的手段就是為文件設(shè)立一個(gè)緩沖區(qū)。

當(dāng)需要寫(xiě)入的字節(jié)數(shù)不足一個(gè)塊設(shè)備大小的時(shí)候,那么都放入緩沖區(qū)當(dāng)中,湊夠一個(gè)塊的大小才調(diào)用一次系統(tǒng)調(diào)用。

  • 全緩沖就是緩沖區(qū)有一定大小滿足那個(gè)數(shù)量就進(jìn)行一次系統(tǒng)調(diào)用;
  • 行緩沖就是碰到一個(gè)換行符就進(jìn)行一次輸出也就是一次系統(tǒng)調(diào)用;
  • 無(wú)緩沖就是不希望有緩沖的實(shí)時(shí)寫(xiě)入到文件,如串口設(shè)備,需要及時(shí)的發(fā)送到串口上去。

代碼演示

f = open('open.txt', 'wb')
'''
使用tail -f open.txt,實(shí)時(shí)查看文件內(nèi)容,
python交互模式下,輸入以下內(nèi)容,查看寫(xiě)入4096個(gè)字節(jié)前后輸出變化。
'''
f.write(b'abc')
f.write(b'+' * 4093)
f.write(b'-')
'''
普通文件默認(rèn)的緩沖行為,緩沖區(qū)的大小4096,是根據(jù)平臺(tái)和
塊設(shè)備自身的屬性相關(guān)。在某些情況下想改變緩沖區(qū)的大小應(yīng)該怎么做?
通過(guò)open函數(shù)buffering參數(shù)設(shè)置緩沖大小。
'''
# 設(shè)置全緩沖區(qū)的大小為2048
f2 = open('demo2.txt', 'wb', buffering=2048)
f2.write(b'+' * 1024)
f2.write(b'+' * 1023)
f2.write(b'-' * 2)
 
# 設(shè)置行緩沖,buffering為1
f3 = open('demo3.txt', 'wb', buffering=1)
f.write(b'abc')
f.write(b'123')
f.write(b'\n')
 
# 無(wú)緩沖,buffering為0
f4 = open('demo4.txt', 'wb', buffering=0)
f4.write(b'a')
f4.write(b'1234')

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決pandas .to_excel不覆蓋已有sheet的問(wèn)題

    解決pandas .to_excel不覆蓋已有sheet的問(wèn)題

    今天小編就為大家分享一篇解決pandas .to_excel不覆蓋已有sheet的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python 地圖經(jīng)緯度轉(zhuǎn)換、糾偏的實(shí)例代碼

    python 地圖經(jīng)緯度轉(zhuǎn)換、糾偏的實(shí)例代碼

    這篇文章主要介紹了python 地圖經(jīng)緯度轉(zhuǎn)換、糾偏的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • 了解不常見(jiàn)但是實(shí)用的Python技巧

    了解不常見(jiàn)但是實(shí)用的Python技巧

    下面有一些相對(duì)不常見(jiàn)但非常有用的Python技巧,小編來(lái)和大家一起學(xué)習(xí)一下
    2019-05-05
  • python使用jieba實(shí)現(xiàn)中文分詞去停用詞方法示例

    python使用jieba實(shí)現(xiàn)中文分詞去停用詞方法示例

    jieba分詞,完全開(kāi)源,有集成的python庫(kù),簡(jiǎn)單易用。下面這篇文章主要給大家介紹了關(guān)于python使用jieba實(shí)現(xiàn)中文分詞去停用詞的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2018-03-03
  • Django框架驗(yàn)證碼用法實(shí)例分析

    Django框架驗(yàn)證碼用法實(shí)例分析

    這篇文章主要介紹了Django框架驗(yàn)證碼用法,結(jié)合實(shí)例形式分析了Python Django框架驗(yàn)證碼的功能、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Python?NumPy教程之索引詳解

    Python?NumPy教程之索引詳解

    這篇文章主要為大家詳細(xì)介紹了Python?NumPy中索引的使用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-08-08
  • 使用Python集合顯著優(yōu)化算法性能的實(shí)戰(zhàn)案例

    使用Python集合顯著優(yōu)化算法性能的實(shí)戰(zhàn)案例

    掌握?Python?中的?set?數(shù)據(jù)結(jié)構(gòu),是算法和數(shù)據(jù)結(jié)構(gòu)的基本功,今天我們從一個(gè)實(shí)戰(zhàn)案例出發(fā),探討如何利用Python集合顯著優(yōu)化算法性能,感興趣的同學(xué)跟著小編一起來(lái)探討吧
    2023-06-06
  • python 監(jiān)控logcat關(guān)鍵字功能

    python 監(jiān)控logcat關(guān)鍵字功能

    這篇文章主要介紹了python 監(jiān)控logcat關(guān)鍵字功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • graphviz 最新安裝教程適用初學(xué)者

    graphviz 最新安裝教程適用初學(xué)者

    Graphviz 是一個(gè)自動(dòng)排版的作圖軟件,可以生成 png pdf 等格式,這篇文章主要介紹了graphviz 2022最新安裝教程適用初學(xué)者,需要的朋友可以參考下
    2023-02-02
  • 深入了解Python中Requests庫(kù)的使用

    深入了解Python中Requests庫(kù)的使用

    Requests是一個(gè)功能強(qiáng)大的Python?HTTP庫(kù),用于發(fā)送HTTP請(qǐng)求,獲取響應(yīng)數(shù)據(jù),本文主要來(lái)和大家聊聊它的用法,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07

最新評(píng)論

阿克陶县| 栾城县| 乌兰县| 鄂托克前旗| 大石桥市| 龙陵县| 苗栗市| 屏南县| 象州县| 祥云县| 台北市| 尼木县| 彰武县| 鹿泉市| 中方县| 乐都县| 东兰县| 嘉定区| 绵竹市| 班玛县| 赞皇县| 微博| 子洲县| 油尖旺区| 青浦区| 临邑县| 宜良县| 辉县市| SHOW| 宜城市| 洛南县| 郯城县| 田东县| 乐东| 册亨县| 南召县| 鹤山市| 大埔县| 鄂尔多斯市| 台北市| 康马县|