Python的SpooledTemporaryFile到底是什么?

时间:2019-12-18 13:51:45

标签: python temporary-files

现在,当我遇到SpooledTemporaryFile时,我正在研究Python中的tempfile选项,描述如下:

  

此函数的操作与TemporaryFile()完全相同,只是将数据假脱机到内存中,直到文件大小超过max_size为止,或者直到调用文件的fileno()方法为止,这时将内容写入磁盘并继续操作与TemporaryFile()一样。

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

写入数据是否已“缓冲”在RAM中,直到达到一定阈值然后保存在磁盘中?与标准方法相比,此方法有什么优势?它更快吗?因为最终还是必须将其保存在磁盘中...

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

1 个答案:

答案 0 :(得分:2)

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

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