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