最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

當(dāng)我們用Python編寫程序時(shí),有時(shí)候需要臨時(shí)存儲(chǔ)數(shù)據(jù)且不希望占用多少內(nèi)存,亦或是需要寫出文件到文件系統(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í)目錄下寫出多個(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)文章

最新評(píng)論

鞍山市| 大城县| 固安县| 札达县| 尤溪县| 巴塘县| 宽甸| 德格县| 科尔| 麻江县| 黎川县| 星子县| 九江市| 卓资县| 西吉县| 西青区| 新宾| 广灵县| 陆河县| 呼玛县| 长乐市| 永寿县| 曲松县| 清远市| 西吉县| 罗山县| 星子县| 吴堡县| 宾阳县| 交口县| 广水市| 黄浦区| 宣化县| 犍为县| 铅山县| 马鞍山市| 西安市| 邛崃市| 平江县| 师宗县| 财经|