1. Learn
  2. /
  3. 课程
  4. /
  5. Python 函数编写

Connected

道练习

只读版 open() 上下文管理器

您为下一个深度学习项目收集并清洗了一堆数据文件,花了数月时间。如果在读取用于训练的数据时不小心把其中某个文件覆盖了,那就太糟糕了。因此,您决定在项目中创建一个只读版本的 open() 上下文管理器。

常规的 open() 上下文管理器:

  • 接收文件名和模式('r' 表示读取,'w' 表示写入,'a' 表示追加)
  • 以读取、写入或追加方式打开文件
  • 将控制权连同文件引用一起交回给上下文
  • 等待上下文执行完毕
  • 然后在退出前关闭文件

您要编写的上下文管理器也会执行上述步骤,不同之处在于它只接收文件名作为参数,并且只以读取方式打开文件。

说明

100 XP
  • 从 open_read_only() 向上下文代码块让出控制权,确保对象 read_only_file 被赋值给 my_file。
  • 使用 read_only_file 的 .close() 方法,确保不会遗留未关闭的文件。