Что делает python с оператором при открытии файлов?

я так думаю

with open('file.txt','r') as f:
    pass

закрывает файл f, но как я могу это доказать? Мой коллега думает, что он сбросит файл, если он открыт для записи.


person silvermangb    schedule 02.11.2017    source источник


Ответы (1)


В документации четко указано, что файлы будут закрыты после заявление завершено.

Однако, если этого недостаточно, вот способ, которым вы можете убедиться сами;

Файлы имеют свойство .closed, которое вы можете проверить.

with open("file.txt", "r") as f:
    print(f.closed)  # will print False
print(f.closed)  # will print True

Это же свойство можно использовать при работе с файлами не-with способом.

f = open("file.txt", "r")
print(f.closed)  # will print False
f.close()
print(f.closed)  # will print True.

Это должно служить достаточным доказательством того, что файл действительно закрывается.

person Shadow    schedule 02.11.2017
comment
Да: закрытие подразумевает сброс. См. stackoverflow.com/questions/2447143/< /а> - person Shadow; 02.11.2017