首页 > 解决方案 > Python 的 SpooledTemporaryFile 到底是什么?

问题描述

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

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

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

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

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

标签: pythontemporary-files

解决方案


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

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


推荐阅读