簡體   English   中英

python在列表中循環

[英]python looping in list

需要一些幫助來循環所有列表並打印列表名稱,目前我幾乎沒有樹莓派類型和 Windows PC,我想 ping 所有 pi 和 Windows 並在下面得到響應是我嘗試過的一些

問題是如何循環、piserver、pi2b、pi2、pi3、pi4 和 windows

import platform
plat = platform.system()
piservers = {"10.10.10.115", "10.10.10.125", "10.10.10.135", "10.10.10.145", "10.10.10.165", "10.10.10.175", "10.10.10.185"}
pi2b= {"10.10.10.111", "10.10.10.112", "10.10.10.113", "10.10.10.114"}
pi2 = {"10.10.10.121", "10.10.10.122", "10.10.10.123", "10.10.10.124"}
pi3 = {"10.10.10.131", "10.10.10.132", "10.10.10.133", "10.10.10.134"}
pi4 = {"10.10.10.141", "10.10.10.142", "10.10.10.143", "10.10.10.144"}
Windows = {"10.10.10.151", "10.10.10.152", "10.10.10.153", "10.10.10.154"}

for vm in piservers :
    # Check for Windows and Linux Platforms
    if plat == "Windows":
        response = os.system("ping -n 1 " + vm)
        pass

    elif plat == "Linux":
        response = os.system("ping -c 1 -W 3 " + vm)
        pass

    #and then check the response...
    if response == 0:
        print ("***********************************")
        print(vm, 'is UP!')
        print ("***********************************")
        print ("\n")
    elif response == 2 or 256 or 512:
        print ("***********************************")
        print(vm, 'is DOWN and No response from Server!')
        print ("***********************************")
        print ("\n")
    else:
        print ("***********************************")
        print(vm, 'is DOWN!')
        print ("***********************************")
        print ("\n")

在您的elif語句中,它應該是:

elif response == 2 or response == 256 or response == 512:

如果你想一次遍歷所有集合,你可以這樣做:

for vm in piservers|pi2b|pi2|pi3|pi4|Windows:

更新

要獲取服務器列表名稱,請編寫如下函數:

def get_server(ip):
    servers = ['piservers', 'pi2b', 'pi2', 'pi3', 'pi4', 'Windows']
    for server in servers:
        if ip in eval(server):
            return server
    return ''

在需要顯示列表名稱的地方使用此功能。 例如:

get_server('10.10.10.151')                                                                                                           
'Windows'
get_server('10.10.10.133')                                                                                                           
'pi3'

在您的情況下,代碼將如下所示,

get_server(vm)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM