使用上下文管理器打开文件 (SIM115)
源自 flake8-simplify 代码检查器。
作用
检查未通过上下文管理器打开文件的情况(例如,使用内置的 open() 函数)。
为什么这不好?
如果打开文件时未使用上下文管理器,则无法保证文件将被关闭(例如,如果引发异常),这可能导致资源泄漏。 此规则检测可以使用上下文管理器的各种 IO 调用,例如 open、pathlib.Path(...).open()、tempfile.TemporaryFile() 或 tarfile.TarFile(...).gzopen()。
示例
建议改为