亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么即使在關閉臨時文件后我也可以寫入和讀取它?

為什么即使在關閉臨時文件后我也可以寫入和讀取它?

UYOU 2021-08-14 17:21:39
我正在嘗試從我的 python 腳本打開文本編輯器,我注意到一些顯然與我對tempfile文檔的理解相矛盾的東西。我的實驗開始于 Alex Martelli 的回答。我的代碼 -import osimport tempfileimport subprocessf = tempfile.NamedTemporaryFile(mode='w+t', delete=True)n = f.nameprint('Does exist? : {0}'.format(os.path.exists(n)))f.close()print('Does exist? : {0}'.format(os.path.exists(n)))subprocess.run(['nano', n])with open(n) as f:    print (f.read())print('Does exist? : {0}'.format(os.path.exists(n)))輸出:Does exist? : TrueDoes exist? : FalseHello from temp file.Does exist? : True在代碼中,我顯式調用close了用 聲明的文件對象delete=True,但即使如此,我也可以向其中寫入和讀取內容。我不明白為什么會這樣。根據文檔-如果 delete 為 true(默認值),則在關閉文件后立即將其刪除。如果調用close刪除文件,那么我不應該能夠寫入然后讀取它。但它會顯示您在執行時輸入的文件的正確內容nano。和tempfile 一樣,該文件在我打開終端并運行腳本的目錄中不可見。更奇怪的是,os.path.exists前兩次工作正常,第三次可能不正確。我在這里錯過了什么嗎?附加實驗:如果我運行以下代碼,那么我可以清楚地看到創建的文件。但這在原始代碼中不會發生。n = '.temp'subprocess.run(['nano', n])with open(n) as f:    print (f.read())print('Does exist? : {0}'.format(os.path.exists(n)))
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號