在python中将stdout重定向到“nothing”

我有一个很大的项目,由足够多的模块组成,每个模块都将一些内容打印到标准输出。现在,随着项目规模的扩大,大量的print语句在std out上大量打印,这使得程序速度大大降低

因此,我现在想在运行时决定是否将任何内容打印到标准输出。我无法对模块进行更改,因为模块太多了。(我知道我可以将stdout重定向到一个文件,但即使这样也相当慢。)

因此,我的问题是如何将stdout重定向到nothing(无),即如何使print语句不执行任何操作

我想这样做。
sys.stdout=None#这显然会给出一个错误,因为非类型对象没有任何写入方法。

目前我唯一的想法是创建一个具有write方法(不做任何事情)的类,并将stdout重定向到这个类的实例

类DontPrint(对象):
def write(*args):通过
dp=DontPrint()
sys.stdout=dp

python中是否有一种内置的机制?或者还有比这更好的吗

跨平台:

导入操作系统
导入系统
f=打开(os.devnull,’w’)
sys.stdout=f

在Windows上:

f=open('num','w')
sys.stdout=f

在Linux上:

f=open('/dev/null',w')
sys.stdout=f

发表评论