如果我只想使用一次file
对象,通常我仍然会使用with
块或file
在完成后显式关闭对象,因为关闭文件似乎是正确的做法:
with open('filename','r') as f:
x = dosomething(f)
或者
f = open('filename','r')
x = dosomething(f)
f.close()
但是,我看到人们使用将调用open
直接传递给函数而不将输出保存到任何变量,从而无法显式关闭:
x = dosomething(open('filename','r'))
那么,这些都是真的吗,
- 不知何故,未命名的文件对象被关闭
- 没关系,不关闭文件就好了
或者这是一个不好的做法?
另外,如果我允许文件被读/写,答案会改变吗?
需要明确的是,dosomething
可能类似于np.array()
或for i in f.readlines()