官方文档:tempfile --- 生成临时文件和目录 — Python 3.10.4 文档
该模块用于创建临时文件和目录,它可以跨平台使用。
TemporaryFile、NamedTemporaryFile、TemporaryDirectory 和 SpooledTemporaryFile 是带有自动清理功能的高级接口,可用作上下文管理器。mkstemp() 和 mkdtemp() 是低级函数,使用完毕需手动清理。
TemporaryFile():返回一个 file-like object (文件类对象)作为临时存储区域。它将在关闭后立即销毁(包括垃圾回收机制关闭该对象时)。
NamedTemporaryFile(): 此函数执行的操作与 TemporaryFile() 完全相同,具有文件名的临时文件(文件名随机生成)
SpooledTemporaryFile(): 此函数执行的操作与 TemporaryFile() 完全相同,但会将数据缓存在内存中,直到文件大小超过 max_size,或调用文件的 fileno()
方法为止,此时数据会被写入磁盘
TemporaryDirectory(): 此函数会安全地创建一个临时目录
tempfile.
mkstemp
(suffix=None, prefix=None, dir=None, text=False) ;以最安全的方式创建一个临时文件。假设所在平台正确实现了 os.open() 的 os.O_EXCL 标志,则创建文件时不会有竞争的情况。该文件只能由创建者读写,如果所在平台用权限位来标记文件是否可执行,那么没有人有执行权。文件描述符不会过继给子进程。
tempfile.
mkdtemp
(suffix=None, prefix=None, dir=None) ;以最安全的方式创建一个临时目录,创建该目录时不会有竞争的情况。该目录只能由创建者读取、写入和搜索。
import tempfile
ff = tempfile.NamedTemporaryFile()
filename = ff.name
ff.write(b'123456789')
ff.seek(0) # 从头读取,和一般文件对象不同,seek方法的执行不能少
print('==================')
print(filename)
print(ff.read())
print(os.path.exists(filename))
ff.close() #关闭文件即删除了文件
print(os.path.exists(filename))
>>>>>>
==================
C:\Users\yj\AppData\Local\Temp\tmp1nkqia5w
b'123456789'
True
False
参考: