Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中跨两个不同进程共享数据_Python - Fatal编程技术网

如何在Python中跨两个不同进程共享数据

如何在Python中跨两个不同进程共享数据,python,Python,我有两个不同的过程 Generator.py:创建一些数据并转储到磁盘 Control.py:控制脚本,从中可以使用子流程调用Generator.py 我试图实现的是Control.py可以接收Generator.py的输出,而无需将其输出转储到磁盘。我希望以这样一种方式建立通信:Control.py可以从Generator.py获取内存中的数据 情景是这样的: Generator.py def foo(): myList = [1,2,3] return myList fo

我有两个不同的过程

  • Generator.py:创建一些数据并转储到磁盘
  • Control.py:控制脚本,从中可以使用子流程调用Generator.py
  • 我试图实现的是Control.py可以接收Generator.py的输出,而无需将其输出转储到磁盘。我希望以这样一种方式建立通信:Control.py可以从Generator.py获取内存中的数据

    情景是这样的:

    Generator.py
    def foo():
        myList = [1,2,3]
        return myList 
    
    foo()
    
    Control.py:
    handleA = subprocess.Popen(["python",  "Generator.py"])
    
    我的目标是控制myList.py。在这种情况下,我该怎么做? 我计划使用multiprocessing.Queue,但问题是如何通过子流程与Generator.py共享队列对象


    实现这一点的最佳方法是什么?

    可能的重复我有两个单独的程序,没有通用函数,如何共享从Generator.py生成的数据以控制.py为什么要用subprocess启动它?您可以使用python进程,因为这两个程序都是python脚本。因为如果您使用进程(而不是子进程),您可以使用队列接口与两个进程共享状态,您的意思是我应该在Generator.py中添加call作为
    process(target=foo,args=(q,)
    ,但是Control.py将如何获得我将放入Generator.py中的数据?