Python 正在关闭作为对象{str}打开的文件

Python 正在关闭作为对象{str}打开的文件,python,Python,我正在使用.read()方法打开一个文件bug\u html\u文件。Python将其用作内存中的{str}对象,对吗 bug_html_file = open(bgz_sfx_html_file, 'r', encoding='utf-8').read() 是否需要以任何方式关闭该把手?是否创建了任何文件句柄?您应该始终关闭打开的文件。例如,如果您在解释器中运行该命令,然后在解释器仍然打开的情况下尝试删除该文件,您将无法删除,因为该文件被标记为“正在使用”。 打开该文件的方式会丢失文件对象的

我正在使用
.read()
方法打开一个文件
bug\u html\u文件
。Python将其用作内存中的
{str}
对象,对吗

bug_html_file = open(bgz_sfx_html_file, 'r', encoding='utf-8').read()

是否需要以任何方式关闭该把手?是否创建了任何文件句柄?

您应该始终关闭打开的文件。例如,如果您在解释器中运行该命令,然后在解释器仍然打开的情况下尝试删除该文件,您将无法删除,因为该文件被标记为“正在使用”。 打开该文件的方式会丢失文件对象的引用(由
open
返回),因此以后无法关闭它

正如@Chris_Rands所建议的,使用带有块的
,以确保退出块后关闭文件:

with open('bug_html_file.txt', 'r') as fp:
    data = fp.read()
# here the file is closed (if you try `read`ing from `fp` you'll raise an error)

将open(bgz_sfx_html_file,'r',encoding='utf-8')用作f:contents=f.read()
,这样就可以明确地关闭文件句柄。手动关闭该句柄是不可能的,但Python在程序结束或垃圾回收期间仍会这样做。但是,这是一种处理文件的糟糕方法,不要担心再使用一行将file对象放入变量中。