IOError - верно.
По сути я работал с упором на stdin, stdout где работать с контекстным менеджером не принято, и забыл что файлы тоже кушаются)