На Python при использовании библиотеки подушек PIL. Когда я открываю изображение и вызываю загрузку, нужно ли его закрывPython

Программы на Python
Anonymous
На Python при использовании библиотеки подушек PIL. Когда я открываю изображение и вызываю загрузку, нужно ли его закрыв

Сообщение Anonymous »

При открытии изображения в Python с использованием библиотеки подушек PIL, предполагая, что изображение не содержит нескольких кадров (например, простого «jpeg»), а затем вызывайте для него .load():

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

from PIL import Image

image = Image.open("some path")
image.load()
Могу ли я просто удалить/переназначить ссылку на него и позволить сборщику мусора позаботиться об этом вместо вызова .close()? Вместо этого:

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

image.close()
Могу ли я просто сделать:

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

image = "some other thing"
# or
del image
И память все равно будет освобождаться через сборщик мусора?
В документации указано:

Предлагаемая обработка файлов

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

Image.Image.load()
должен закрыть файл изображения, если в нем
несколько кадров.

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

Image.Image.seek()
никогда не должен закрывать файл изображения.
Пользователям библиотеки следует использовать контекстный менеджер или вызывать

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

Image.Image.close()
на любом изображении, открытом с именем файла или объектом Path
, чтобы убедиться, что основной файл закрыт.

Поэтому я предполагаю, что это так. Но большинство примеров, которые я видел, все равно вызывают .close(). Вот почему я в замешательстве.

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