Python 的 SpooledTemporaryFile 到底是什么?

Luc*_*ade 5 python temporary-files

我正在研究Python 中的临时文件选项,当我遇到时SpooledTemporaryFile,现在,描述说:

该函数的操作与 TemporaryFile() 完全一样,除了数据在内存中假脱机直到文件大小超过 max_size,或者直到文件的 fileno() 方法被调用,此时内容被写入磁盘并且操作像 TemporaryFile 一样继续()。

我想确切地了解这意味着什么,我环顾四周但没有找到答案,如果我做对了:

写入的数据是否在 RAM 中“缓冲”,直到达到某个阈值,然后保存在磁盘中?这种方法与标准方法相比有什么优势?它更快吗?因为最终它无论如何都必须保存在磁盘中......

无论如何,如果有人能给我提供一些见解,我将不胜感激。

che*_*ner 6

数据在写入前缓存在内存中。问题变成了,写什么吗?

不必要。TemporaryFile,默认情况下,在关闭文件后删除文件。如果假脱机文件永远不会大到足以写入磁盘(并且用户永远不会尝试调用其fileno方法),则缓冲区将在关闭时简单地被刷新,而不会发生实际的磁盘 I/O。