欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)用技巧之臨時(shí)文件的妙用

 更新時(shí)間:2023年02月27日 09:46:57   作者:費(fèi)弗里  
當(dāng)我們用Python編寫(xiě)程序時(shí),有時(shí)候需要臨時(shí)存儲(chǔ)數(shù)據(jù)且不希望占用多少內(nèi)存,這些情況下以創(chuàng)建臨時(shí)文件的方式進(jìn)行處理,既不會(huì)干擾本地文件系統(tǒng),又安全省事。本文主要介紹了臨時(shí)文件的一些妙用,希望大家能夠喜歡

當(dāng)我們用Python編寫(xiě)程序時(shí),有時(shí)候需要臨時(shí)存儲(chǔ)數(shù)據(jù)且不希望占用多少內(nèi)存,亦或是需要寫(xiě)出文件到文件系統(tǒng)供后續(xù)程序讀取,這些情況下以創(chuàng)建臨時(shí)文件的方式進(jìn)行處理,既不會(huì)干擾本地文件系統(tǒng),又安全省事。

而通過(guò)使用Python中的標(biāo)準(zhǔn)庫(kù)tempfile,我們就可以很方便的進(jìn)行臨時(shí)文件相關(guān)操作,其主要用法有兩種:

創(chuàng)建臨時(shí)文件

tempfile的經(jīng)典用法之一是使用其TemporaryFile()配合with上下文管理器,在本地文件系統(tǒng)的臨時(shí)文件目錄下創(chuàng)建具有隨機(jī)名稱的文件,并且在with內(nèi)的代碼執(zhí)行完成后,該臨時(shí)文件會(huì)自動(dòng)被銷毀:

import os
import tempfile

with tempfile.TemporaryFile() as f:
    print(f.name)
    print(os.path.exists(f.name))

print(os.path.exists(f.name))

基于這個(gè)特性,我們可以應(yīng)用到很多場(chǎng)景下,譬如當(dāng)我們希望將表格格式的字符串轉(zhuǎn)換為pandas數(shù)據(jù)框時(shí),就可以像下面這樣做:

raw_string='''a,b,c
1,1,1
2,2,2
3,3,3
4,4,4
'''

with tempfile.TemporaryFile('w+') as f:
    f.write(raw_string)
    f.seek(0) #將指針移回文件開(kāi)頭
    
    demo_df=pd.read_CSV(f)
    
demo_df

創(chuàng)建臨時(shí)目錄

前面展示了tempfile創(chuàng)建臨時(shí)文件的功能,而有些場(chǎng)景下,我們需要?jiǎng)?chuàng)建臨時(shí)文件夾,這可以基于TemporaryDirectory()來(lái)實(shí)現(xiàn),特性類似TemporaryFile()

with tempfile.TemporaryDirectory() as p:
    
    print(p)
    print(os.path.exists(p))
    
print(os.path.exists(p))

典型的應(yīng)用場(chǎng)景是配合TemporaryDirectory()shutil生成壓縮包文件:

import shutil
import zipfile
import numpy as np

with tempfile.TemporaryDirectory() as p:
    
    # 模擬向當(dāng)前臨時(shí)目錄下寫(xiě)出多個(gè)文件
    for i in range(100):
        (
            pd
            .DataFrame(np.random.rand(10, 3), columns=list('ABC'))
            .to_csv(os.path.join(p, f'demo{i+1}.csv'), index=False)
        )
        
    # 將當(dāng)前臨時(shí)目錄轉(zhuǎn)為zip壓縮包
    shutil.make_archive('./demo', 'zip', p)

# 查看目標(biāo)壓縮文件內(nèi)的文件
[file.filename for file in zipfile.ZipFile('demo.zip').filelist]

到此這篇關(guān)于Python實(shí)用技巧之臨時(shí)文件的妙用的文章就介紹到這了,更多相關(guān)Python臨時(shí)文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python在指定目錄下查找gif文件的方法

    python在指定目錄下查找gif文件的方法

    這篇文章主要介紹了python在指定目錄下查找gif文件的方法,涉及Python操作文件的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • Python中進(jìn)行表單處理的方法詳解

    Python中進(jìn)行表單處理的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python中進(jìn)行表單處理的方法,分別是利用Flask和Flask-WTF處理表單,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-12-12
  • Python中的流程控制詳解

    Python中的流程控制詳解

    這篇文章主要介紹了Python中的流程控制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法

    python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 淺談PYTHON 關(guān)于文件的操作

    淺談PYTHON 關(guān)于文件的操作

    這篇文章主要介紹了PYTHON 關(guān)于文件的操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • pandas如何給DataFrame新增列并賦值

    pandas如何給DataFrame新增列并賦值

    這篇文章主要介紹了pandas如何給DataFrame新增列并賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    本文主要介紹了使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 跟老齊學(xué)Python之Python安裝

    跟老齊學(xué)Python之Python安裝

    本文主要講訴了在Linux,Windows,MacOS三大系統(tǒng)中如何安裝Python環(huán)境,非常的實(shí)用,雖然前面絮絮叨叨的說(shuō)了不少題外話,但都是作者的肺腑之言,還是仔細(xì)看看吧
    2014-09-09
  • python3.6 tkinter實(shí)現(xiàn)屏保小程序

    python3.6 tkinter實(shí)現(xiàn)屏保小程序

    這篇文章主要為大家詳細(xì)介紹了python3.6 tkinter實(shí)現(xiàn)屏保小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python之lambda表達(dá)式與sort函數(shù)中的key用法

    python之lambda表達(dá)式與sort函數(shù)中的key用法

    這篇文章主要介紹了python之lambda表達(dá)式與sort函數(shù)中的key用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論