在多处理过程中抑制输出

2024-05-19 01:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些使用多处理池类并行运行的代码。不幸的是,我从另一个库中使用的一些函数有一些冗长的输出。要抽象问题,请看以下示例:

from multiprocessing import Pool

def f(x):
    print 'hello'
    return x*x

p = Pool(10)
p.map(f, [1,2,3])

所以这将打印10次“你好”。 是否有可能使进程的输出静音或 把标准输出在某个变量中?谢谢你的建议。在

编辑: 我不想重定向整个stdout,只是为了我的池的进程。在


Tags: 函数代码fromimport示例maphelloreturn
1条回答
网友
1楼 · 发布于 2024-05-19 01:45:33

使用the ^{} parameter调用工作进程中的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')

印刷品

^{pr2}$

相关问题 更多 >

    热门问题