所以我有一个名为“num”的变量,其值为1并且不断增加1.当我同时运行其他python脚本时,它们也使用“num”但它们当然从1开始,因为num isn没有连接到其他脚本中的num。如果我的第一个脚本中的num是600,它已经运行了更长时间,那么在我的另一个脚本中,num可能是5,而这个脚本的运行时间已经很长了。
如何在脚本A中num为600时,一旦运行,num会自动从脚本B中的600开始增加?我需要nums在整个过程中相同并且一起增加。
答案 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