2024-10-01 09:25:47 发布
网友
我正在用tempfile.mkstemp()生成一个临时文件。它返回一个操作系统级的fd以及文件的路径。我想os.fdopen()操作系统级文件描述符来写入它。如果我随后关闭os.fdopen()返回的文件,操作系统级文件描述符将关闭,还是必须显式地os.close()它?文件似乎没有明确说明发生了什么。在
tempfile.mkstemp()
os.fdopen()
os.close()
我很肯定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.")
这表明当文件对象关闭时,底层文件描述符被关闭。在
我很肯定fd会关门的。如果你不想的话,你可以先重复一遍。当然,你总是可以很容易地测试这个。在
测试如下:
这表明当文件对象关闭时,底层文件描述符被关闭。在
相关问题 更多 >
编程相关推荐