Запись файла никогда не должна давать ошибку памяти; по всей вероятности, у вас есть ошибка в другом месте.
Если у вас есть цикл и ошибка памяти, я бы посмотрел, если вы «просочились» ссылки на объекты.
Что-то вроде:
def do_something(a, b = []):
b.append(a)
return b
fp = open('output.txt', 'wb')
for i in range(1, n):
something = do_something(i)
fp.write(something)
fp.close()
Сейчас я выбираю только пример, но в вашем реальном случае найти утечку эталона может быть гораздо сложнее; однако в этом случае будет просто утечка памяти внутри do_something
из-за способа, которым Python обрабатывает параметры функций по умолчанию.