跳到主要内容

SyncStream

Python工具,用来在不同的线程、进程、或主机之间,进行信息同步。

安装

执行以下命令,以完成基础安装:

pip install syncstream

或运行以下命令,以完成完整安装:

pip install syncstream[file,host]

捕获StdOut

以下代码示范了如何捕获Python的标准输出(stdout):

import syncstream

buffer = syncstream.LineBuffer(10)
with buffer:
for i in range(20):
print(f'Message "{i:02d}".')
print("No line break.", end="")

messages = buffer.read()
for mitem in messages:
print(mitem)

捕获子进程的Stdout

以下代码示范了如何捕获Python的标准输出(stdout):

import multiprocessing
import syncstream


def worker_process(buffer):
'''Define the workder_process'''
with buffer:
print('Message', 'item')


if __name__ == '__main__':
pbuf = syncstream.LineProcBuffer(10)
with multiprocessing.Pool(4) as pool:
pool.map_async(
worker_process,
tuple(pbuf.mirror for _ in range(4))
)
pbuf.wait()

messages = pbuf.read()
for mitem in messages:
print(mitem)