文件——文件上下文管理器 | 第二部分 类型与操作 —— 第 9 章: 元组,文件和其他 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-江南app体育官方入口

未匹配的标注

还将要关注第34章对于从python 3.0和2.6新出的文件内容管理器支持的讨论。虽然更多它是一个异常处理的特性而非文件本身,但它允许以一个逻辑层来包裹文件处理代码,确保了文件将在推出时被自动关闭(而且如果需要,会将其输出清空到磁盘),而不是依赖于垃圾回收期间的自动关闭:

with open(r'c:\code\data.txt') as myfile: # see chapter 34 for details
  for line in myfile:
    ...use line here...

在第34章还将学习的try/finally语句也提供类似功能,但以额外的代码为代价——准确地说,是三行额外代码(虽然通常可以避免这两个选项并让python为我们自动关闭文件):

myfile = open(r'c:\code\data.txt')
try:
    for line in myfile:
        ...use line here...
finally:
    myfile.close()

with上下文管理器方案确保释放了所有python中的系统资源,且对于输出文件更有用,以保证刷新缓存区;然而,不像更通用的try,它局限于支持其协议的对象。然而,因为这两个选项都需要比目前我们掌握到的更多信息,将把细节推迟到本书稍后。

本文章首发在 江南app体育官方入口 网站上。

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图