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)