На будущее. read/close - методы из одной связки. У них единый синтаксис. А в данном коде это не соблюдено. Надо быть внимательным самому и не отвлекать людей в их праздник
Переменная f существует только в блоке with, вне блока with ее нет, строку на tab вправо надо
Но вообще она не нужна, with автоматом закрывает, как выше написали