Важно ли вызывать close() для файла, открытого с помощью open(), если Flush() вызывается после каждой операции write()?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Важно ли вызывать close() для файла, открытого с помощью open(), если Flush() вызывается после каждой операции write()?

Сообщение Anonymous »

Я читал, что важно вызывать close() для файла, который был открыт с помощью open(filename, 'w'|'a'), потому что в противном случае в открытый файл вносятся изменения файл не может быть сохранен. Я считаю, что это связано с буферизацией.
Насколько я понимаю, нельзя полагаться на механизм GC для правильного закрытия открытого файла, поскольку он не переносим между различными интерпретаторами Python.
Я также понимаю, что близкий эквивалент RAII реализован с использованием контекстов.
Например, следующий контекст with автоматически вызывает close()< /code>, когда область применения оператора with заканчивается.

Код: Выделить всё

with open(filename, 'w') as ofile:
# pass
# ofile.close() called automatically (literally, or effectively?)
Изменится ли ситуация, если после каждого вызова .write() мы будем вызывать .flush()? В этом контексте по-прежнему необходимо/важно/целесообразно (при необходимости удалить) также явно вызывать .close() вместо того, чтобы оставлять открытый файл для последующей сборки мусора?

Подробнее здесь: https://stackoverflow.com/questions/787 ... if-flush-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как может быть «iw dev Wlan1 -Flush -Flush» с тем же адаптером с тем же адаптером и тем же драйвером на одной системе, ч
    Anonymous » » в форуме Linux
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между StreamWriter.Flush() и StreamWriter.Close()?
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Console.Write+Flush поведение, отличное от Console.WriteLine
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Console.Write+Flush поведение, отличное от Console.WriteLine
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • FCLOSE в детском процессе влияет на операции с исходным процессом, когда нет Fflush до Flush Fork [Duplicate]
    Anonymous » » в форуме Linux
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»