Закрывается ли сам по себе объект _io.TextIOWrapper?
При записи/чтении данных из файлов используется либо open с последующим присвоением io объекта, обработкой, и последующем закрытием, или же тот же open, только в качестве менеджера контекста, как пример:
a = open('example.txt', 'r') # открыли файл
print(a) # результат вывода - <_io.TextIOWrapper name=.......>
a.close() # закрываем файловый объект
###
with open('example.txt', 'r') as b: # открыли файл
print(b) # результат вывода - <_io.TextIOWrapper name=.......>
# закрывать файловый объект вручную не требуется, данная процедура происходит
# при автоматическом вызове __exit__ метода
Вопрос: что насчёт остальных примеров открытия? Закрываются ли в такие моменты файловые объекты сами по себе, или так и остаются висеть(???) открытыми
lines = [line for line in open('example.txt', 'r').readlines()]
print(lines)