第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

處理文本 I/O 時似乎忽略了 open() 的緩沖參數(shù)

處理文本 I/O 時似乎忽略了 open() 的緩沖參數(shù)

人到中年有點甜 2021-10-12 17:47:01
使用文本 I/O 時,似乎忽略了內(nèi)置 open() 函數(shù)的緩沖參數(shù):文本輸入/輸出:>>> f = open("myfile_text.txt", "w",buffering=2)>>> f.write('1')1>>> f.write('1')1>>> f.write('1')1mymachine:~ myuser$ cat myfile.txt ; echomymachine:~ myuser$二進制輸入/輸出:>>> f = open("myfile_binary.txt", "wb",buffering=2)>>> f.write('1'.encode())1>>> f.write('1'.encode())1>>> f.write('1'.encode())1mymachine:~ myuser$ cat myfile.txt ; echo11mymachine:~ myuser$為什么?這是預期的行為嗎?
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

我摸索了一下。事實上,文檔指出:

buffering是一個可選整數(shù),用于設置緩沖策略。傳遞 0 以關閉緩沖(僅在二進制模式下允許),1 以選擇行緩沖(僅可用于文本模式),以及一個大于 1 的整數(shù)以指示固定大小塊緩沖區(qū)的大小(以字節(jié)為單位)...

因此,期望指定buffering=2會導致2B使用大小的緩沖區(qū)是合理的(并在使用該緩沖區(qū)時看到文件被刷新)。然而,在文本模式下,它似乎(和文檔并沒有真正清楚地表明,在這個地方)影響的下劃線BufferedWriter,但TextIOWrapper它的write()你最終調(diào)用確實還“自己的事” ......與Python 3.7開始,你告訴它不要并讓它通過調(diào)用f.reconfigure(write_through=True)您打開的文件立即將寫入傳遞給底層對象。


實際上,所有代碼和檢查值write_through都已經(jīng)在 Python 3.6 中(我已經(jīng)檢查過 3.6.8)(事實上_io_TextIOWrapper_write_impl,即_io.TextIOWrapper.write,在兩個版本中都是相同的),但該write_through屬性尚未公開(尚未公開)。


查看完整回答
反對 回復 2021-10-12
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號