Python如何使用標(biāo)準(zhǔn)庫tmpfile庫創(chuàng)建臨時文件
如何使用臨時文件
實(shí)際案例
某項(xiàng)目中,我們從傳感器采集數(shù)據(jù),每收集到1G數(shù)據(jù)后,做數(shù)據(jù)分析,最終只保存分析結(jié)果。
這樣很大的臨時數(shù)據(jù)如果常駐內(nèi)存,將消耗大量內(nèi)存資源,我們可以使用臨時文件存儲這些臨時數(shù)據(jù)(外部存儲)。
臨時文件不同命名,且關(guān)閉后會自動被刪除。
解決方案
使用標(biāo)準(zhǔn)庫中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)臨時文件在關(guān)閉以后,它會自動刪除掉。
NamedTemporaryFile可以指參數(shù)delete=False,
在文件關(guān)閉以后不刪除臨時文件。在這種情況下可以
多個進(jìn)程同時訪問,由文件系統(tǒng)的路徑訪問文件;
而TemporaryFile只能在本進(jìn)程下訪問。
'''
# (1)TemporaryFile創(chuàng)建臨時文件
# 返回一個臨時文件對象
f = TemporaryFile()
f.write(b'abcdef' * 100000)
# 將文件指針指回到文件首部
f.seek(0)
# 只讀取文件一部分?jǐn)?shù)據(jù)
print(f.read(100))
# (2) NamedTemporaryFile創(chuàng)建臨時文件
# 返回的并不直接是一個文件對象
ntf = NamedTemporaryFile()
# 可以通過name屬性,得到在文件系統(tǒng)下的路徑
print(ntf.name)
# 在文件關(guān)閉以后不刪除臨時文件
# ntf = NamedTemporaryFile(delete=False)總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(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-03
PyQt5 實(shí)現(xiàn)給無邊框widget窗口添加背景圖片
這篇文章主要介紹了PyQt5 實(shí)現(xiàn)給無邊框widget窗口添加背景圖片的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
tensorflow TFRecords文件的生成和讀取的方法
本篇文章主要介紹了tensorflow TFRecords文件的生成和讀取的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧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-12
python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Anaconda和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-04
Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解
這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
通過Python使用saltstack生成服務(wù)器資產(chǎn)清單
人工去對每一臺服務(wù)器的硬件信息并記錄早已經(jīng)過去了,無論通過腳本還是自動化工具都是可以進(jìn)行一次編寫到處抓取的,本文主要使用saltstack作為使用工具,然后利用其提供的APi編寫所需的Python腳本2016-03-03

