我可以从另一个运行的python脚本访问列表吗

我可以从另一个运行的python脚本访问列表吗,python,python-3.x,interprocess,Python,Python 3.x,Interprocess,如果我有两个脚本,一个脚本有一个列表,当前正在运行,另一个脚本需要在第一个脚本运行时访问该列表,我将如何做到这一点 范例 脚本1 import random example_list = [] while True: example_list.append(random.randint(0,9)) 脚本2 x = example_list[i] 我无法更改脚本1。 如何从脚本2访问脚本1中创建的列表 注:这只是一个例子,所以它的用途无关紧要。我认为您需要的是进程间通信(IPC),其中

如果我有两个脚本,一个脚本有一个列表,当前正在运行,另一个脚本需要在第一个脚本运行时访问该列表,我将如何做到这一点

范例

脚本1

import random
example_list = []
while True:
    example_list.append(random.randint(0,9))
脚本2

x = example_list[i]
我无法更改脚本1。
如何从脚本2访问脚本1中创建的列表


注:这只是一个例子,所以它的用途无关紧要。

我认为您需要的是进程间通信(IPC),其中第一个脚本填充变量,第二个脚本想要使用它。IPC可能有几种机制——消息队列、共享文件等。
如果您的需求非常简单,可以捕获列表内容(并且列表仅包含字符串、整数),以便其他脚本可以使用它,那么您可以将其转储到一个名为python代码或JSON的已知文件中,并从第二个脚本中读取它。您可以在文件中pickle数据并捕获pickle数据,然后在第二个脚本中取消pickle-提供列表中的数据是可pickle的。

如果您可以使用多处理(一个进程启动另一个进程),则可以使用多处理功能共享列表。看看

不!你不能这样做。至少在python中是这样


无法在另一个正在运行的进程中访问变量。

list=list+random.randint(0,9)
是一个
类型错误。另外,
list
对内置类型进行阴影处理
list
list()==[]
。你还在
中添加一个列表,而True
有点傻。我想这可能是一种使用pickle然后从那里获取数据的方法,但我不知道如果不编辑第一个脚本,我是否可以做到这一点。这不起作用,因为我试图在第一个脚本运行时访问它的数据,所以我不能编辑它,因为这需要我停止脚本。您可以使用gdb访问正在运行的进程并转储内存堆。我见过解释堆以查找字符串变量的实例,但这需要更多的知识。检查我试图在第一个脚本运行时访问第一个脚本中的数据,而不更改第一个脚本的代码。我试图弄清楚它们是否是一种在不改变第一个脚本的情况下从第二个脚本访问数据的方法。这允许您连接到运行的python shell,从中读取数据或注入代码。您知道我是否可以使用pickle保存脚本1的执行状态,并从中访问列表。不!您不能用pickle或任何其他库保存执行状态。@ElisByberi我认为pyrasite(www.pyrasite.com)允许您连接到运行的python shell(基于pid),从中读取数据或注入代码。@Sharad理论上讲,在运行的python脚本中不可能注入、编辑或进行任何更改。我们说“运行python脚本”,但它不再是脚本了。它已被翻译成C语言和从C到机器二进制代码。如果不重新加载脚本执行(这不是我们想要的),就无法完成此操作。