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()
效果:

网友评论