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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如果我們?cè)趦蓚€(gè)不同的終端中以寫入模式打開(kāi)一個(gè)文件并嘗試同時(shí)寫入它們會(huì)怎樣?

如果我們?cè)趦蓚€(gè)不同的終端中以寫入模式打開(kāi)一個(gè)文件并嘗試同時(shí)寫入它們會(huì)怎樣?

f=open("text.txt","w")f.write("What is this?")在新終端中:x=open("text.txt","w")x.write("I am going to do the same.")x.close()然后我嘗試讀取并打印文件的內(nèi)容:x=open("text.txt","r")print(x.read())What is this? do the same. #this is the output. I want to understand how this happened.
查看完整描述

1 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

這里發(fā)生的事情是,在您的第一個(gè)會(huì)話中,在您完成f.write(...). (請(qǐng)注意,您還沒(méi)有關(guān)閉該文件。)在您的新終端中,您使用起始文件指針 0 寫入文件,然后輸出緩沖區(qū)被完全刷新到文件,因?yàn)槟P(guān)閉了文件。

如果您在完成此操作后立即檢查輸出文件,那么您會(huì)發(fā)現(xiàn)內(nèi)容只是I am going to do the same.. 但是,一定是在您檢查文件時(shí),您已經(jīng)從第一個(gè)會(huì)話中清除了緩沖區(qū)的內(nèi)容——這可能是因?yàn)槟呀?jīng)退出了 python 會(huì)話,或者因?yàn)槟呀?jīng)完成了顯式f.close()f.flush(). 這將導(dǎo)致緩沖What is this?被寫入文件。但是起始文件指針也是 0,因?yàn)榈谝粋€(gè)會(huì)話中的原始文件open會(huì)將其定位在開(kāi)頭(也會(huì)截?cái)嗳魏维F(xiàn)有內(nèi)容)。所以它會(huì)覆蓋之前的部分I am going to do the same.,導(dǎo)致觀察到的行為。

如果您有兩個(gè)進(jìn)程都附加到同一個(gè)文件并且您希望確保避免寫入沖突,那么您需要執(zhí)行以下操作:

  • ar+模式打開(kāi)文件

  • 當(dāng)一個(gè)進(jìn)程想要寫入時(shí),它必須:

    • 等待文件的獨(dú)占鎖

    • 尋找文件的末尾

    • 寫輸出

    • 刷新輸出

    • 釋放鎖

但是文件鎖定的細(xì)節(jié)超出了這個(gè)問(wèn)題的范圍。


查看完整回答
反對(duì) 回復(fù) 2023-06-13
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)