Cla*_*diu 10 python file-io operating-system
我正在制作一个临时文件tempfile.mkstemp().它返回一个os级别的fd以及该文件的路径.我想要os.fdopen()os级文件描述符写入它.如果我然后关闭os.fdopen()返回的文件,是否将关闭os级文件描述符,或者我是否必须os.close()明确它?文档似乎没有说明明确发生了什么.
Kei*_*ith 10
我很确定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.")
Run Code Online (Sandbox Code Playgroud)
这表明在关闭文件对象时关闭了底层文件描述符.