现在,当我遇到SpooledTemporaryFile
时,我正在研究Python中的tempfile选项,描述如下:
此函数的操作与TemporaryFile()完全相同,只是将数据假脱机到内存中,直到文件大小超过max_size为止,或者直到调用文件的fileno()方法为止,这时将内容写入磁盘并继续操作与TemporaryFile()一样。
我想确切理解这是什么意思,我环顾四周,但没有找到答案,如果我做对了:
写入数据是否已“缓冲”在RAM中,直到达到一定阈值然后保存在磁盘中?与标准方法相比,此方法有什么优势?它更快吗?因为最终还是必须将其保存在磁盘中...
无论如何,如果有人能为我提供一些见解,我将不胜感激。
答案 0 :(得分:2)
在写入之前,数据已缓冲在内存中。问题变成, 会写什么吗?
不一定。 TemporaryFile
默认情况下会在关闭文件后删除它。如果假脱机文件的大小永远不足以写入磁盘(并且用户从不尝试调用其fileno
方法),则在关闭缓冲区时将仅刷新该缓冲区,而不会发生实际的磁盘I / O。