我制作了简单的python程序来生成大文本文件:
import sys
import random
f = open('data.txt', 'w')
for i in range(100000000):
f.write(str(i) + "\t" + str(random.randint(0,1000)) + "\n")
f.close()
当我使用 CPython 启动它时,它会吃掉所有可用的操作系统内存,并且不会向文件写入任何内容。
当我在 Jython 上启动它时,我得到OutOfMemoryException
.
据我了解,它将所有内容都存储在内存缓冲区中,并且在close()
调用之前从未进行过刷新。
我的问题是:如何限制文件缓冲区并触发自动刷新?我不想flush()
手动调用,我认为从性能的角度来看这是错误的。我想flush()
在文件缓冲区超载时自动调用。
谢谢!