Python標準庫(2)—Tempfile

Tempfile用於創建臨時文件和目錄,在某些場景中可能會用到。

模塊提供了4個高級接口:

  • TemporaryFile,創建臨時文件,使用完畢自動清理
  • NamedTemporaryFile,確保該臨時文件在文件系統中具有可見的名稱,且通過設置delete=False可以保存文件
  • SpooledTemporaryFile,數據緩存在內存中直到超過max_size再落地
  • TemporaryDirectory,創建臨時文件夾,使用完畢自動清理

和2個低級接口:

  • mkstemp,創建臨時文件
  • mkdtemp,創建臨時文件夾

一般情況下用高級接口即可。低級接口需要自己手動清理文件。

demo如下:

通過tempfile.tempdir決定本模塊所有函數的 dir 參數的默認值,即臨時文件/文件夾的創建路徑。

suffix可以指定文件名後綴結尾,prefix指定文件名前綴開頭。

import tempfile
from pathlib import Path


def main():
    # 創建臨時文件
    with tempfile.NamedTemporaryFile(delete=False) as fp:        
        print(fp.name)
        fp.write(b'Hello world!')
        fp.seek(0)
        print(fp.read())

    # 創建臨時文件夾
    with tempfile.TemporaryDirectory(suffix=".txt", prefix='temp') as tmpdir:
        print('created temporary directory', tmpdir)


if __name__ == '__main__':
    p = Path('.')
    p1 = p / "tmp"
    p1.mkdir(exist_ok=True)
    tempfile.tempdir = p1  # 設置全局的dir
    main()

效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章