jrs*_*rsm 2 python multiprocessing
我有一些使用多处理 Pool 类并行运行的代码。不幸的是,我从另一个库中使用的一些函数有一些冗长的输出。要抽象问题,请查看以下示例:
from multiprocessing import Pool
def f(x):
print 'hello'
return x*x
p = Pool(10)
p.map(f, [1,2,3])
Run Code Online (Sandbox Code Playgroud)
所以这将打印 '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')
Run Code Online (Sandbox Code Playgroud)
印刷
Hello
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |