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

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

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

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

實際案例

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

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

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

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

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

解決方案

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

注意:

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

文件緩沖介紹?

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

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

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

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

代碼演示

f = open('open.txt', 'wb')
'''
使用tail -f open.txt,實時查看文件內(nèi)容,
python交互模式下,輸入以下內(nèi)容,查看寫入4096個字節(jié)前后輸出變化。
'''
f.write(b'abc')
f.write(b'+' * 4093)
f.write(b'-')
'''
普通文件默認(rèn)的緩沖行為,緩沖區(qū)的大小4096,是根據(jù)平臺和
塊設(shè)備自身的屬性相關(guān)。在某些情況下想改變緩沖區(qū)的大小應(yīng)該怎么做?
通過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')
 
# 無緩沖,buffering為0
f4 = open('demo4.txt', 'wb', buffering=0)
f4.write(b'a')
f4.write(b'1234')

總結(jié)

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

相關(guān)文章

  • 解決pandas .to_excel不覆蓋已有sheet的問題

    解決pandas .to_excel不覆蓋已有sheet的問題

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

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

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

    了解不常見但是實用的Python技巧

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

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

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

    Django框架驗證碼用法實例分析

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

    Python?NumPy教程之索引詳解

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

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

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

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

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

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

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

    深入了解Python中Requests庫的使用

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

最新評論

岳阳县| 若尔盖县| 西乌珠穆沁旗| 林西县| 宝丰县| 老河口市| 新竹市| 怀柔区| 准格尔旗| 阳高县| 和林格尔县| 旬阳县| 恩施市| 临汾市| 屏南县| 江安县| 枝江市| 中阳县| 化德县| 浏阳市| 易门县| 汾西县| 固始县| 城固县| 伊春市| 德阳市| 阿勒泰市| 湖北省| 临沧市| 项城市| 新安县| 宜宾县| 垦利县| 丰城市| 肇源县| 霍邱县| 通许县| 射阳县| 庄河市| 贵定县| 深水埗区|