Я сделал простую программу на 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()
вызывался автоматически при перегрузке файлового буфера или около того.
Спасибо!