Я почти уверен, что fd будет закрыт. Если вы не хотите этого, вы можете сделать это первым. Конечно, вы всегда можете проверить это достаточно легко.
Тест выглядит так:
from __future__ import print_function
import os
import tempfile
import errno
fd, tmpname = tempfile.mkstemp()
fo = os.fdopen(fd, "w")
fo.write("something\n")
fo.close()
try:
os.close(fd)
except OSError as oserr:
if oserr.args[0] == errno.EBADF:
print ("Closing file has closed file descriptor.")
else:
print ("Some other error:", oserr)
else:
print ("File descriptor not closed.")
Что показывает, что основной файловый дескриптор закрыт, когда объект файла закрыт.