我正在使用以下代码在Linux/OSX上为Python库隐藏stderr我默认不控制写入stderr:
f = open("/dev/null","w")
zookeeper.set_log_stream(f)
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的跨平台替代/ dev/null?理想情况下,它不会消耗内存,因为这是一个长时间运行的过程.
msa*_*ers 130
os.devnull怎么样?
import os
f = open(os.devnull,"w")
zookeeper.set_log_stream(f)
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 43
class Devnull(object):
def write(self, *_): pass
zookeeper.set_log_stream(Devnull())
Run Code Online (Sandbox Code Playgroud)
os.devnull当然打开也很好,但是这样每个输出操作都会发生(作为noop)"正在进行中" - 没有上下文切换到操作系统并返回,也没有缓冲(虽然一些缓冲通常由a使用open)因此甚至更少的内存消耗.
>>> import os
>>> os.devnull
'nul'
Run Code Online (Sandbox Code Playgroud)
创建自己的文件类对象,什么都不做?
class FakeSink(object):
def write(self, *args):
pass
def writelines(self, *args):
pass
def close(self, *args):
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28239 次 |
| 最近记录: |