我正在使用 Napalm 更改許多網路設備的主機名。由于每個設備的配置都不同,因此我需要腳本根據其 IP 地址為每個設備分配正確的配置。這似乎是一本字典效果最好。
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
我需要幫助為每個 IP 地址呼叫下面腳本中的鍵值。我已經突出顯示了需要這樣做的代碼行。
from napalm import get_network_driver
devicelist = ['10.255.32.1',
'10.255.32.5'
]
for ip_address in devicelist:
print ("Connecting to " str(ip_address))
driver = get_network_driver('ios')
iosv = driver(ip_address, 'admin', 'password')
iosv.open()
**iosv.load_merge_candidate(filename='device1.cfg')**
diffs = iosv.compare_config()
if len(diffs) > 0:
print(diffs)
iosv.commit_config()
else:
print('No changes required.')
iosv.discard_config()
iosv.close()
uj5u.com熱心網友回復:
您要求通過字典上的鍵進行簡單訪問,并結合字典上的 for 回圈,該字典自動是鍵上的 for 回圈。最小的例子:
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
for ipAdress in devicelist:
print("This IP : {} maps to this name: {}".format(ipAdress, devicelist[ipAdress]))
輸出:
This IP : 10.255.32.1 maps to this name: device1.cfg
This IP : 10.255.32.5 maps to this name: device2.cfg
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453160.html
標籤:python-3.x 凝固汽油弹
