在Python中,我可以使用f= open(<filename>,<permissions>)
打开一个文件。这将返回一个对象f
,我可以使用f.write(<some data>)
写入该对象。
此时,如果我访问原始的final(例如,来自终端的cat
),它显示为空:Python将我写入的数据存储到对象f
而不是实际的-disk文件。如果我然后调用f.close()
,f
中的数据将保留在磁盘文件中(我可以从其他程序访问它)。
我假设数据被缓冲以改善延迟。但是,如果缓冲数据增长很多,会发生什么? Python会发起写吗?如果是这样,内部的详细信息(影响缓冲区大小的是什么?是在Python或其他程序/线程中处理的磁盘I / O?Python有可能在写入期间挂起吗?)将非常感激。
答案 0 :(得分:1)
I / O缓冲的一般主题已被多次处理(包括与评论相关的问题)。但要回答您的具体问题:
stdio
,因此它选择自己的缓冲区大小。 (几KB是典型的。)