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

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)文章

最新評(píng)論

平遥县| 黎川县| 东丽区| 酉阳| 汶上县| 普洱| 合江县| 凌源市| 兴化市| 伊川县| 平果县| 册亨县| 平利县| 宁陵县| 桂阳县| 彰武县| 靖江市| 中宁县| 高陵县| 平利县| 惠东县| 怀集县| 麻城市| 鹰潭市| 池州市| 蒙阴县| 庆元县| 洮南市| 承德市| 新营市| 南木林县| 桃园县| 牟定县| 陆河县| 嘉定区| 泽州县| 田林县| 伽师县| 龙川县| 体育| 监利县|