【发布时间】:2018-11-07 01:17:56
【问题描述】:
在 Python 中,我可以使用f= open(<filename>,<permissions>) 打开一个文件。这将返回一个对象 f,我可以使用 f.write(<some data>) 写入该对象。
如果此时我访问原始最终结果(例如,从终端使用cat),它看起来是空的:Python 存储了我写入对象f 的数据,而不是实际的磁盘文件。如果我随后调用f.close(),f 中的数据将保存到磁盘文件中(我可以从其他程序访问它)。
我假设数据被缓冲以改善延迟。但是,如果缓冲的数据增长很多,会发生什么? Python会发起写操作吗?如果是这样,内部细节(影响缓冲区大小的因素是什么?磁盘 I/O 是在 Python 中处理还是由另一个程序/线程处理?Python 是否有可能在写入期间挂起?)将不胜感激。
【问题讨论】:
-
我认为您的问题在这里至少得到了部分回答:stackoverflow.com/questions/29712445/… 也看看:stackoverflow.com/questions/31869247/…
标签: python python-3.x io cpython disk-io