

新闻资讯
技术学院tempfile模块提供安全跨平台临时文件/目录管理:TemporaryFile用于内存缓冲,NamedTemporaryFile提供可访问路径,mkstemp/mkdtemp精确控制生命周期,TemporaryDirectory自动清理整个目录。
Python 的 tempfile 模块专为安全、跨平台地创建临时文件和目录而设计,避免硬编码路径、权限冲突或残留垃圾文件。它自动处理命名冲突、清理时机和系统临时目录选择,是脚本、测试、数据中转等场景的首选工具。
TemporaryFile 做内存级临时缓冲适合短时读写、不需文件路径的场景(如中间数据加工)。默认在内存中操作(Linux/macOS 下使用 tmpfs 或 /dev/shm),速度快且自动销毁。
spill=True(仅部分系统支持)或改用 NamedTemporaryFile
NamedTemporaryFile 获取可访问路径当你需要把临时文件路径传给其他命令、子进程或库(如 subprocess.run(['ffmpeg', '-i', tmp_path, ...]))时用它。
.name 属性),但默认 关闭即删除
delete=False,但务必手动 os.unlink() 清理NamedTemporaryFile(会报 PermissionError),可用 delete=False + os.close() + 重开方式绕过mkstemp 和 mkdtemp 精确控制生命周期适合需要完全掌控文件/目
录创建与删除时机的场景,比如长期运行服务中的临时工作区。
mkstemp() 返回 (fd, path),需自行用 os.fdopen(fd) 包装成文件对象;文件不会自动删除,必须手动 os.close(fd) + os.unlink(path)
mkdtemp() 创建空临时目录,返回路径;同样不自动清理,需配合 shutil.rmtree()
dir(父目录)、prefix/suffix(命名规则),适合归类管理tempfile.TemporaryDirectory 管理整个目录比手动 mkdtemp + rmtree 更安全,尤其适合测试中批量生成临时文件的场景。
with tempfile.TemporaryDirectory() as tmpdir:)确保退出时清空目录,哪怕发生异常tmpdir 一并消失tmpdir 路径(例如用 shutil.move())