Python

Python tempfile 暫存檔案、目錄產生模組使用教學與範例

介紹如何使用 Python 的 tempfile 模組自動建立暫存檔案或目錄,存放暫時性的資料。

建立暫存檔案

TemporaryFile() 可以用來建立暫存用的檔案,預設會以二進位的方式開啟,我們可以將暫存資料寫入檔案中,需要時再讀取出來,而在檔案關閉之後,該暫存檔就會自動被刪除。

# 引入 tempfile 模組
import tempfile

# 建立並開啟暫存檔案(二進位)
fp = tempfile.TemporaryFile()

# 寫入二進位資料
fp.write(b'Hello, world.')

# 將檔案讀寫位置(offset)設定為最開頭
fp.seek(0)

# 讀取檔案內容
content = fp.read()

# 輸出結果
print(content)

# 關閉檔案(自動刪除檔案)
fp.close()
b'Hello, world.'

如果想要儲存的資料是文字,可以改用文字模式開啟暫存檔:

import tempfile

# 建立並開啟暫存檔案(文字檔)
fp = tempfile.TemporaryFile(mode = 'w+t')

# 寫入文字資料
fp.write('Hello, world.')

fp.seek(0)
content = fp.read()
print(content)
fp.close()
Hello, world.

若搭配 with 使用,可讓語法更簡潔:

import tempfile

with tempfile.TemporaryFile('w+t') as fp:
    fp.write('Hello, world.')
    fp.seek(0)
    content = fp.read()
    print(content)

# 自動刪除暫存檔

建立具名暫存檔案

使用 TemporaryFile() 所建立的暫存檔是匿名的,如果需要取得檔案名稱,可以改用 NamedTemporaryFile()

import tempfile

with tempfile.NamedTemporaryFile('w+t') as fp:
    print('暫存檔:', fp.name)
    # ...

# 自動刪除暫存檔
暫存檔: C:\Users\OfficeGuide\AppData\Local\Temp\tmp8f1mb1z0

具名的暫存檔案一樣會在關閉時自動被刪除,如果希望自己管理暫存檔案的刪除動作,可以加上 delete=False 參數:

import tempfile
import os

with tempfile.NamedTemporaryFile('w+t', delete = False) as fp:
    tmpFilename = fp.name
    # ...

# 自行刪除暫存檔
os.unlink(tmpFilename)

建立暫存目錄

若需要建立一個暫存目錄,存放各種暫存檔案,可以使用 TemporaryDirectory() 函數,在暫存目錄中可以存放任意數量的暫存檔,使用完畢之後,該暫存目錄(連同裡面所有檔案)會自動被刪除。

import tempfile

with tempfile.TemporaryDirectory() as dirname:
    print('暫存目錄:', dirname)
    # ...

# 自動刪除暫存目錄與所有內容

參考資料:Python 官方文件python3-cookbook

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago