如何在不同的运行python脚本中保持变量相同?

时间:2014-08-28 00:44:18

标签: python variables

所以我有一个名为“num”的变量,其值为1并且不断增加1.当我同时运行其他python脚本时,它们也使用“num”但它们当然从1开始,因为num isn没有连接到其他脚本中的num。如果我的第一个脚本中的num是600,它已经运行了更长时间,那么在我的另一个脚本中,num可能是5,而这个脚本的运行时间已经很长了。

如何在脚本A中num为600时,一旦运行,num会自动从脚本B中的600开始增加?我需要nums在整个过程中相同并且一起增加。

2 个答案:

答案 0 :(得分:2)

最简单的方法是将文件系统用作同步变量存储。它不优雅,但它可以通过两个脚本以快速和脏的方式实现:

脚本一:

# This is a master script that starts everything off.
from time import sleep
count = 0
while True:
    with open("myfile.txt","w+") as f:
        print>>f,count
    print "Script 1 count:",count
    count+=1
    sleep(1)

脚本二:

# This is the script that you start when script one is running
import warnings
from time import sleep

try:
    with open("myfile.txt","r") as f:
        count = int(f.read().strip())
except Exception as error:
    warnings.warn(repr(error))
    count = 0

while True:
    print "Script 2 count:",count
    count+=1
    sleep(1)

如果您想要一个优雅的解决方案,您可以考虑使用sockets在脚本之间设置正确的消息传递系统。

答案 1 :(得分:1)

执行此操作的一种方法是使用名为消息传递的内容。首先,启动一个进程来保存实际的num变量,并同步对它的访问。然后,启动其他进程与第一个进行通信,并询问当前值,然后处理下一个进程。 (当然,您需要安排多个下一个值同时处理。)

通过快速搜索,我出现了这个问题。希望它有所帮助。

http://www.valuedlessons.com/2008/06/message-passing-conccurrency-actor.html