Not closing os.devnull Python



我想知道在python中不关闭文件os.devnull是否存在问题。我知道通常我们需要关闭打开的文件。尽管如此,我想知道是否有可能在我们不关闭它们的情况下处理 sys.stdout 或 sys.stderr。

对于普通文件,由于缓冲而不关闭它们时,您将面临丢失数据的风险。这显然不是/dev/null关心的问题。

但是,虽然/dev/null在技术上不是常规文件而是设备文件,但它以相同的方式使用文件描述符。您甚至可以使用fileno()方法检查 Python 中的文件描述符:

import os
with open(os.devnull) as devnull:
print(devnull.fileno())

操作系统限制任何单个进程可以具有的打开文件描述符的数量。这不太可能成为问题,但将/dev/null视为任何其他文件并仅出于此原因将其关闭仍然是很好的做法。

相关内容

  • 没有找到相关文章

最新更新