python - Python 的 SpooledTemporaryFile 到底是什么?
问题描述
我正在研究 Python 中的临时文件选项,当我遇到时SpooledTemporaryFile
,现在,描述说:
此函数的操作与 TemporaryFile() 完全一样,除了数据在内存中假脱机直到文件大小超过 max_size,或者直到文件的 fileno() 方法被调用,此时内容被写入磁盘并且操作与 TemporaryFile 一样继续()。
我想确切地理解这意味着什么,我环顾四周但没有找到答案,如果我做对了:
写入的数据是否在 RAM 中“缓冲”直到达到某个阈值然后保存在磁盘中?与标准方法相比,这种方法有什么优势?它更快吗?因为最终它无论如何都必须保存在磁盘中......
无论如何,如果有人能给我一些见解,我将不胜感激。
解决方案
数据在写入之前缓存在内存中。问题变成了,会写什么吗?
不必要。TemporaryFile
,默认情况下,在文件关闭后删除文件。如果假脱机文件永远不会变得足够大以写入磁盘(并且用户永远不会尝试调用其fileno
方法),则缓冲区将在关闭时简单地刷新,而不会发生实际的磁盘 I/O。
推荐阅读
- amazon-web-services - Cloudwatch VPC 接口端点超时
- google-sheets - 如何过滤 columnA 值和该数据子集的 MAX(columnB)?
- python - Python网络抓取数组但首先进入默认页面
- mysql - 在拉丁语数据库中将二进制 ID 与 == 进行比较时,如何避免 Ecto 匹配不正确?
- c# - C# API PUT 方法无需写入所有参数
- javascript - VueJS 在加载组件数据并获取后端数据后,将使用后端数据值填充的输入值相加?
- python - 如何使用 Binance 的 asyncio 客户端登录?
- vue.js - 从 VUEJS 中的 url 获取 ID
- sql-server - hadoop sqooping 需要始终对大部分相同的数据进行 sqoop 是否有意义?
- django - Django 甜化