检测阵列中的更改并运行命令以获取新值

时间:2012-11-12 13:44:53

标签: python arrays events

我有一系列IP会不时更改,我希望每个新的IP都能运行命令。

我的代码是:

while (network.status!="connected"):
    p=network.connections  
    for i in p:
        print i.ip  #checks the IP's in the array i
    time.sleep(10)    

所以我希望每当数组i中有一个新值来运行特定命令时。 在python中执行此操作的最有效方法是什么。

2 个答案:

答案 0 :(得分:5)

使用set并查看每个循环中的差异:

old = set()
while network.status != "connected":
    p = set(network.connections)
    for i in p - old:
        print i.ip # new ips that were added
    for i in old - p:
        print i.ip # old ips that were removed
    old = p
    time.sleep(10)   

答案 1 :(得分:0)

如何对列表进行子类化并将其连接到某个处理程序? 看看这里: https://stackoverflow.com/a/12203829/1091116 您要做的是重命名'validate'并使其对添加列表中的项目作出反应。