如何将值从子脚本传递到同时运行的父脚本?

2024-04-20 08:21:04 发布

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

在Python中提前向调用进程返回值?在

您好,我想问一下,有没有一种方法可以让一个脚本调用另一个脚本,让这两个脚本同时运行,并且让子脚本在子脚本完成运行之前很久就向父脚本发送一个值(不提前退出该子脚本)?我在寻找Python的解决方案,但是任何信息或线索都会有所帮助,谢谢。在

我认为一种方法是将要发送回父脚本的值打印到标准输出,然后让父脚本重定向它或以某种方式获取它,但必须有更好的解决方案,因为如果子脚本打印其他内容呢?(然后父脚本必须知道如何使用Unix head和tail命令来隔离输出的确切部分,如果您根本不想使用标准输出呢?)在

我已经在这方面寻找过答案,但找不到任何答案。在


Tags: 方法答案脚本信息内容标准进程方式
2条回答

最好使用multiprocessing module,它正是为这个目的而设计的。在

您可以使用multiprocessing从父脚本启动子脚本。 可以使用mp.Queue将子脚本的输出传递回父脚本。下面是一个简单的例子:

父级.py

import multiprocessing as mp
import child

if __name__ == '__main__':
    queue = mp.Queue()
    proc = mp.Process(target=child.main, args=(queue,))
    proc.daemon = True  
    # This launches the child process, calling child.main()
    proc.start()         
    for i in range(10):
        result = queue.get()  # Get results from child.main
        print(result)

儿童.py

^{pr2}$

请注意,通过queueresult必须是可选取的。在

相关问题 更多 >