[英]Suppress output in multiprocessing process
我有一些使用multiprocessing Pool类并行运行的代码。 不幸的是,我在另一个库中使用的某些功能有一些冗长的输出。 要抽象问题,请看以下示例:
from multiprocessing import Pool
def f(x):
print 'hello'
return x*x
p = Pool(10)
p.map(f, [1,2,3])
因此,这将打印出“ hello”之类的10次。 是否有可能使进程的输出静音或将std.out放入某些变量中? 感谢您的任何建议。
编辑:我不想重定向整个标准输出,只是为了我的池的过程。
使用initializer
参数在工作进程中调用mute
:
import sys
import os
from multiprocessing import Pool
def mute():
sys.stdout = open(os.devnull, 'w')
def f(x):
print 'hello'
return x*x
if __name__ == '__main__':
p = Pool(10, initializer=mute)
p.map(f, [1,2,3])
print('Hello')
版画
Hello
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.