Отметьте f.fileno()
, оно должно совпадать с fi
.Вы должны когда-либо закрывать этот файловый дескриптор только один раз, так что второй правильный.
В Unix первый вызывает ошибку:
>>> f.close()
>>> os.close(fi)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 9] Bad file descriptor