Python如何使用標準庫tmpfile庫創(chuàng)建臨時文件
如何使用臨時文件
實際案例
某項目中,我們從傳感器采集數(shù)據(jù),每收集到1G數(shù)據(jù)后,做數(shù)據(jù)分析,最終只保存分析結果。
這樣很大的臨時數(shù)據(jù)如果常駐內(nèi)存,將消耗大量內(nèi)存資源,我們可以使用臨時文件存儲這些臨時數(shù)據(jù)(外部存儲)。
臨時文件不同命名,且關閉后會自動被刪除。
解決方案
使用標準庫中tmpfile下的TemporaryFile,NamedTemporaryFile。
代碼演示
from tempfile import TemporaryFile, NamedTemporaryFile ''' TemporaryFile和NamedTemporaryFile區(qū)別: (1) NamedTemporaryFile會創(chuàng)建帶名字的臨時文件; TemporaryFile創(chuàng)建的臨時文件不帶名字 (2)TemporaryFile創(chuàng)建的臨時文件,不能由文件系統(tǒng)路徑找到它,只能由對象訪問; 創(chuàng)建一個能在文件系統(tǒng)中找到的臨時文件,使用NamedTemporaryFile。 (3)臨時文件在關閉以后,它會自動刪除掉。 NamedTemporaryFile可以指參數(shù)delete=False, 在文件關閉以后不刪除臨時文件。在這種情況下可以 多個進程同時訪問,由文件系統(tǒng)的路徑訪問文件; 而TemporaryFile只能在本進程下訪問。 ''' # (1)TemporaryFile創(chuàng)建臨時文件 # 返回一個臨時文件對象 f = TemporaryFile() f.write(b'abcdef' * 100000) # 將文件指針指回到文件首部 f.seek(0) # 只讀取文件一部分數(shù)據(jù) print(f.read(100)) # (2) NamedTemporaryFile創(chuàng)建臨時文件 # 返回的并不直接是一個文件對象 ntf = NamedTemporaryFile() # 可以通過name屬性,得到在文件系統(tǒng)下的路徑 print(ntf.name) # 在文件關閉以后不刪除臨時文件 # ntf = NamedTemporaryFile(delete=False)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python中dtypes和type()函數(shù)的區(qū)別示例詳解
type()是python內(nèi)置的函數(shù),type()返回數(shù)據(jù)結構類型(list、dict、numpy.ndarray 等),dtype返回數(shù)據(jù)元素的數(shù)據(jù)類型(int、float等),這篇文章主要給大家介紹了關于python中dtypes和type()函數(shù)區(qū)別的相關資料,需要的朋友可以參考下2024-03-03PyQt5 實現(xiàn)給無邊框widget窗口添加背景圖片
這篇文章主要介紹了PyQt5 實現(xiàn)給無邊框widget窗口添加背景圖片的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03tensorflow TFRecords文件的生成和讀取的方法
本篇文章主要介紹了tensorflow TFRecords文件的生成和讀取的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02基于Python實現(xiàn)RLE格式分割標注文件的格式轉換
本文將以Airbus Ship Detection Challenge為例,為大家詳細講解Python實現(xiàn)RLE格式分割標注文件格式轉換的方法,感興趣的可以了解一下2022-08-08python數(shù)據(jù)可視化pygal模擬擲骰子實現(xiàn)示例
這篇文章主要為大家介紹了python數(shù)據(jù)可視化pygal模擬擲骰子實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06Anaconda和ipython環(huán)境適配的實現(xiàn)
這篇文章主要介紹了Anaconda和ipython環(huán)境適配的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04通過Python使用saltstack生成服務器資產(chǎn)清單
人工去對每一臺服務器的硬件信息并記錄早已經(jīng)過去了,無論通過腳本還是自動化工具都是可以進行一次編寫到處抓取的,本文主要使用saltstack作為使用工具,然后利用其提供的APi編寫所需的Python腳本2016-03-03