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()

效果:

1620721897520.jpg

你可能感兴趣的:(Python标准库(2)—Tempfile)