用1行代码打开读取和关闭文件
现在我使用:
pageHeadSectionFile = open('pagehead.section.htm','r')
output = pageHeadSectionFile.read()
pageHeadSectionFile.close()
但为了使代码看起来更好,我可以这样做:
output = open('pagehead.section.htm','r').read()
使用上述语法时,如何关闭文件以释放系统资源?
你不必关闭它 - Python会在垃圾回收或程序退出时自动执行它。 但是正如@delnan所指出的那样,最好由于各种原因明确关闭它。
所以,你可以做些什么来保持简短和明确:
with open('pagehead.section.htm','r') as f:
output = f.read()
我想,现在只有两行,可读性很强。
使用CPython,您的文件将在执行该行后立即关闭,因为该文件对象立即被垃圾收集。 但是有两个缺点:
在与CPython不同的Python实现中,文件通常不会立即关闭,而是在以后超出您的控制范围。
在Python 3.2或更高版本中,如果启用,这将抛出ResourceWarning
。
最好另外投资一条线路:
with open('pagehead.section.htm','r') as f:
output = f.read()
这将确保文件在任何情况下都能正确关闭。
你可以做的是使用with
语句:
>>> with open('pagehead.section.htm', 'r') as fin:
... output = fin.read()
with
语句会小心地调用给定对象的__exit__
函数,即使代码中发生了不好的事情; 它接近try... finally
语法。 对于open
返回的对象, __exit__
对应于文件关闭。
该语句已在Python 2.6中引入。
链接地址: http://www.djcxy.com/p/19627.html