Python 如何知道关闭资源操作需要遵循哪个函数
我是Python新手,对何时应该调用close感到困惑Python 如何知道关闭资源操作需要遵循哪个函数,python,Python,我是Python新手,对何时应该调用close感到困惑 例如,考虑这个问题。 此任务结束时没有reader.close() Q> 如何确定函数调用之后是否需要执行关闭调用?返回需要清理的资源的函数将有文档说明这一点csv.reader不会打开文件,也不会创建可关闭的资源。open调用可以,但是with语句负责为您关闭它。您需要调用close的唯一时间是您必须释放系统资源的时候。大体上,这仅适用于文件句柄。一般对象,如csv读取器,不必关闭。您给出的示例不需要关闭,因为打开的文件是由和处理的(类似
例如,考虑这个问题。
此任务结束时没有reader.close()Q> 如何确定函数调用之后是否需要执行关闭调用?返回需要清理的资源的函数将有文档说明这一点
csv.reader
不会打开文件,也不会创建可关闭的资源。open
调用可以,但是with
语句负责为您关闭它。您需要调用close的唯一时间是您必须释放系统资源的时候。大体上,这仅适用于文件句柄。一般对象,如csv读取器,不必关闭。您给出的示例不需要关闭,因为打开的文件是由和
处理的(类似于使用C的)
现在,如果您的示例是这样的,那么将出现一个close()
:
这两者实际上是一样的,但是带有
的会在运行期间处理故障,以确保文件句柄(f
)关闭。如果此处的打开
和关闭
之间出现问题,则您仍然有一个打开的文件资源
编辑:
带有
的与此相同:
import csv
f = open('some.csv', 'rb')
try:
reader = csv.reader(f)
for row in reader:
print row
finally:
f.close()
import csv
f = open('some.csv', 'rb')
reader = csv.reader(f)
for row in reader:
print row
f.close()
import csv
f = open('some.csv', 'rb')
try:
reader = csv.reader(f)
for row in reader:
print row
finally:
f.close()