在我的作业中,我应该在一个函数中阅读完文件后关闭该文件。但是,稍后我必须从另一个函数再次访问它。关闭文件是强制关闭文件的好习惯的要求,但我觉得没有必要,因为我需要稍后再次打开文件。有没有办法关闭文件并仍然从另一个函数访问它,或者我应该手动重新打开它。示例代码:def open(file): filename = open(file, "r") filename.read() filename.close()def access(): for line in filename: print(line)
3 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
没有任何内容表明您必须在当前函数结束之前关闭文件,只是您必须确保文件已关闭。一种方法是将已经打开的文件access作为参数传递给,并在access返回后关闭它。例如,
def access1(fh):
for line in fh:
print(line)
def access2(fh):
# Do something else with the file
# This is the builtin open function, not the one in the question
with open(filename) as f:
access1(f)
f.seek(0) # Reset the file pointer for the next function
access2(f)
开心每一天1111
TA贡献1836条经验 获得超13个赞
是的,关闭后您需要再次打开文件。当我们完成对文件的操作后,我们需要正确关闭该文件。关闭文件将释放资源。
Python 有一个垃圾收集器来清理未引用的对象,但保持文件打开并不是一个好方法。
或者我们可以使用
> with open("test.txt", encoding = 'utf-8') as f: # perform file operations
一旦我们退出“with”语句内的块,文件就会关闭。
添加回答
举报
0/150
提交
取消