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