首页
/
每日頭條
/
科技
/
創建臨時文件和文件夾
創建臨時文件和文件夾
更新时间:2026-04-07 23:51:07

創建臨時文件和文件夾?在程序執行時創建一個臨時文件或目錄,并希望使用完之後可以自動銷毀掉,我來為大家講解一下關于創建臨時文件和文件夾?跟着小編一起來看一看吧!

創建臨時文件和文件夾(創建臨時文件和文件夾)1

創建臨時文件和文件夾

1. 現象

在程序執行時創建一個臨時文件或目錄,并希望使用完之後可以自動銷毀掉

2. 原因分析
3. 問題解決

tempFile 模塊中有很多的函數可以完成這任務。為了創建一個匿名的臨時文件,可以使用 tempfile.TemporaryFile

import tempfile import os.path # '<tempfile._TemporaryFileWrapper object at 0x0000023236E332B0>' f_obj = tempfile.TemporaryFile('w t', encoding='utf-8') # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpiu8k36rp' print(f_obj.name) # 寫入數據 f_obj.write('Hello World\n') f_obj.write('Cory Testing\n') # 回到開始位 f_obj.seek(0) # 'Hello World\nCory Testing\n' data = f_obj.read() print(data) """ Hello World Cory Testing """ # 如果不寫 也會根據垃圾回收機制 将生成的臨時文件删除 f_obj.close()

也可以使用with語句

with tempfile.TemporaryFile('w t', encoding='utf-8') as f_obj: print(f_obj.name) print(os.path.normpath(f_obj.name)) f_obj.write('Hello World\n') f_obj.write('Cory Testing\n') f_obj.seek(0) data = f_obj.read() print(data)

TemporaryFile 的第一個參數是文件模式,通常來講文本模式使用 w t ,二進制模式使用 w b,其他參數與 open 函數相同

參數

解釋

mode

模式參數,默認'w b' 創建的文件可讀可寫,b表示二進制模式,可以通用所有系統平台

buffering

與 open 函數相同,用于設置緩沖策略的可選整數,可選值0,1, >1 ,0表示緩沖buffering關閉,1代表行緩沖,>1 表示初始化的buffering緩沖

encoding

與 open 函數相同,返回的數據采用何種編碼

newline

與 open 函數相同,控制通用換行符模式的工作原理

suffix

文件名後綴,值為None,表示沒有後綴

prefix

文件名前綴,如果值為None,使用默認使用 gettempprefix 和 gettempprefixb 返回的值作為前綴,

dir

文件所在目錄,如果值為None,使用默認目錄保存文件

在大多數 Unix 系統上,通過 TemporaryFile 創建的文件都是匿名的,甚至連目錄都沒有。如果你想打破這個限制,可以使用 NamedTemporaryFile 來代替

實驗得知,兩者的名稱都可以獲得

named_f_obj = tempfile.NamedTemporaryFile('w t', encoding='utf-8') # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpm_1vwckp' print(named_f_obj.name) unamed_f_obj = tempfile.TemporaryFile('w t', encoding='utf-8') # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpozlh_men' print(unamed_f_obj.name) # TemporaryFile 與 NamedTemporaryFile 一樣,結果文件關閉時會被自動删除掉。如果不想這麼做,可以傳遞一個關鍵字參數delete=False 即可 named_f_obj = tempfile.NamedTemporaryFile('w t', encoding='utf-8', delete=False) # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmp55k__4ri' print(named_f_obj.name) unamed_f_obj = tempfile.TemporaryFile('w t', encoding='utf-8', delete=False) # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpvoegzv8z' print(unamed_f_obj.name)

為了創建一個臨時目錄,可以使用 tempfile.TemporaryDirectory()

with tempfile.TemporaryDirectory() as dir_name: # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpikl6vb6b' print('Dirname is : ', dir_name)

TemporaryFile、 NamedTemporaryFile 和 TemporaryDirectory 函數應該是處理臨時文件目錄的最簡單的方式了,因為它們會自動處理所有的創建和清理步驟

在一個更低的級别,可以使用 mkstemp 和 mkdtemp 來創建臨時文件和目錄

# '(3, 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\tmpbizsgx_3')' tempfile.mkstemp() # 'C:\Users\ADMINI~1\AppData\Local\Temp\tmpv3jye9ql' tempfile.mkdtemp()

但是,這些函數并不會做進一步的管理了,要自己清理這些文件

通常來講,臨時文件在系統默認的位置被創建,比如Unix下 /var/tmp 或類似的地方

所有和臨時文件相關的函數都允許你通過使用關鍵字參數 prefix 、 suffix 和 dir來自定義目錄以及命名規則

f_obj = tempfile.NamedTemporaryFile(prefix='Temp_', suffix='.info', dir='E:\Temp') # 'E:\Temp\Temp_sj35onql.info' print(f_obj.name)

4. 錯誤經曆
,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
無氟空調的制冷與制熱原理
無氟空調的制冷與制熱原理
無氟空調的制冷與制熱原理無氟空調的簡介按照規定,R22制冷劑将于2020年前逐步淘汰,無氟環保冷媒R410A為其主要環保替代品。所以用無氟環保冷媒R410A代替原先的傳統冷媒的空調就稱為“無氟”的空調。“無氟空調”再融入直流變頻技術,就是“...
2026-04-07
手機進水怎麼辦?手機進水屏幕失靈怎麼辦?
手機進水怎麼辦?手機進水屏幕失靈怎麼辦?
手機進水後,一般是PDA資料庫出了問題。裝機後重新撰寫PDA字資料庫,屏幕還是失靈,可是嘗試重置CPU。手機進水怎麼辦?手機進水屏幕失靈怎麼辦?手機進水怎麼辦手機進水後,第一時間撈上來,減少手機泡水的時間。如果進水時間越長,對手機的話筒、聽筒、屏幕、主闆傷害會更大。撈出手機後,切勿重啟手機。很多人心...
2026-04-07
暖氣不熱的原因-暖氣不熱怎麼辦?
暖氣不熱的原因-暖氣不熱怎麼辦?
暖氣不熱的原因-暖氣不熱怎麼辦?暖氣不熱的原因1、暖氣自身原因。現大多數居民使用的還是老式鑄鐵暖氣,這種暖氣大多造型老舊,要靠暖氣罩扮靓,裝飾效果提高、生活質量降低,“美麗而凍人”,有些住戶一到冬天就幹脆打開暖氣罩,盡管這樣,散熱效果還是大打折扣,要想從根本上熱起來,最好的辦...
2026-04-07
景觀庭院燈飾如何保養和清潔?
景觀庭院燈飾如何保養和清潔?
景觀庭院燈飾如何保養和清潔?景觀庭院燈飾的選購知識1、風格搭配要協調一緻景觀庭院燈飾一般不止買一個,而是夠買多個不同類型和款式的進行組合,此時,要注意風格上的協調。從色彩、式樣以及亮燈後的映照效果三方面來考慮,可以選購同樣款式的燈飾,亮燈色彩上保持同一色調,最多不超過3種。2、貨比三家建議到家居大賣...
2026-04-07
節能冰箱的選購方法
節能冰箱的選購方法
節能冰箱的選購方法節能冰箱的選購方法一、采用高效壓縮機。壓縮機是冰箱的心髒,也是冰箱的主要耗能部件,采用高效壓縮機是冰箱節能最為簡單有效的措施。二、應用節能新工質。冰箱的工作介質不同,則獲得相同制冷量所需的功耗也有所不同,它直接關系到冰箱的制冷效果。如既環保又節能的R600A制冷劑,相對以前提高了很...
2026-04-07
Copyright 2023-2026 - www.tftnews.com All Rights Reserved