Python中的跨平台/dev/null
我正在使用以下代码来隐藏Linux/OSX上的标准错误输出(stderr),因为我在用一个我无法控制的Python库,而这个库默认会往标准错误输出写信息:
f = open("/dev/null","w")
zookeeper.set_log_stream(f)
有没有简单的跨平台替代方案来代替/dev/null?理想情况下,它不应该占用内存,因为这是一个长时间运行的进程。
6 个回答
8
在编程中,我们常常会遇到一些问题,特别是在使用某些工具或库的时候。有时候,错误信息可能会让人感到困惑,不知道该怎么解决。这个时候,查看一些技术论坛,比如StackOverflow,就能找到很多有用的建议和解决方案。
在这些讨论中,大家会分享他们遇到的问题,以及他们是如何解决这些问题的。通常,其他人会提供不同的看法和方法,帮助你更好地理解问题的本质。
总之,技术论坛是一个很好的资源,可以让你在遇到困难时找到帮助,学习到更多的知识。
>>> import os
>>> os.devnull
'nul'
49
class Devnull(object):
def write(self, *_): pass
zookeeper.set_log_stream(Devnull())
当然,打开 os.devnull
也是可以的,但这样做的好处是每次输出操作都是在当前程序里进行的(就像什么都没做一样),这样就不需要切换到操作系统再回来,也没有使用缓冲区(通常打开文件时会用到一些缓冲),所以这样会消耗更少的内存。
183
那你觉得 os.devnull 怎么样呢?
import os
f = open(os.devnull,"w")
zookeeper.set_log_stream(f)