一尘不染

python关闭文件描述符问题

python

我认为这个问题更多是“编码风格”,而不是技术问题。

说我有一行代码:

buf = open('test.txt','r').readlines()
...

文件描述符会自动关闭还是留在内存中?如果文件描述符未关闭,则首选的关闭方式是什么?


阅读 148

收藏
2020-12-20

共1个答案

一尘不染

如果将文件对象分配给变量,则可以使用来显式关闭它 .close()

f = open('test.txt','r')
buf = f.readlines()
f.close()

另外,(也通常是首选),您可以使用Python文档中with提到的关键字(Python
2.5及更高版本):

with 在处理文件对象时,最好使用关键字。这样做的好处 ,即使在执行过程中引发了异常, 文件在其套件完成后也将正确关闭
。它也比编写等效的try-finally块要短得多:

>>> with open('test.txt','r') as f:
...     buf = f.readlines()
>>> f.closed
True
2020-12-20