首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的跨平台/dev/null

Python中的跨平台/dev/null
EN

Stack Overflow用户
提问于 2010-05-28 22:34:09
回答 5查看 35.7K关注 0票数 90

我使用以下代码在Linux/OSX上为一个Python库隐藏stderr,该库不受我控制,默认情况下它会写入stderr:

代码语言:javascript
复制
f = open("/dev/null","w")
zookeeper.set_log_stream(f)

是否有一个简单的跨平台替代/dev/null?理想情况下,它不会消耗内存,因为这是一个长时间运行的进程。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-28 22:40:08

os.devnull呢?

代码语言:javascript
复制
import os
f = open(os.devnull,"w")
zookeeper.set_log_stream(f)
票数 160
EN

Stack Overflow用户

发布于 2010-05-28 22:40:58

代码语言:javascript
复制
class Devnull(object):
    def write(self, *_): pass

zookeeper.set_log_stream(Devnull())

当然,打开os.devnull也很好,但是通过这种方式,每个输出操作都会发生(作为noop)“在进程中”--不需要在操作系统之间来回切换上下文,也不需要缓冲(虽然一些缓冲通常由open使用),因此占用的内存更少。

票数 47
EN

Stack Overflow用户

发布于 2010-05-28 22:40:27

代码语言:javascript
复制
>>> import os
>>> os.devnull
'nul'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2929899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档