def get_config(ip_list): for ipaddr,os,name,pswd in ip_list: session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os)怎么将os= huawei的情况进行if语句
时间: 2023-11-28 22:03:55 浏览: 73
你可以使用以下代码:
```
def get_config(ip_list):
for ipaddr, os, name, pswd in ip_list:
if os == "huawei":
session = ConnectHandler(device_type=os,
ip=ipaddr,
username=name,
password=pswd,
banner_timeout=300)
print("connecting to " + ipaddr + os)
else:
print("Invalid OS")
```
在这个代码中,我们检查 `os` 是否等于 `"huawei"`,如果是,则建立连接并打印连接信息。否则,我们将打印一个错误消息表明操作系统无效。
相关问题
def get_config(ip_list): for ipaddr,os,name,pswd in ip_list: if os == 'huawei': session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os + name + pswd) print ("---- Getting configuration from {}-----------".format(ipaddr)) config_data = session.send_command('dis ip int brief ') print (config_data) session.disconnect() else os == 'cisco_ios': session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os + name + pswd) print ("---- Getting configuration from {}-----------".format(ipaddr)) config = session.send_command("show running-config") #抓取配置引入config print(config) #回显内容,类似登录设备show run session.disconnect() 请问如何纠正else语句
在这段代码中,else语句的语法不正确。应该是使用elif关键字来创建一个新的条件语句。修改后的代码如下:
```
def get_config(ip_list):
for ipaddr, os, name, pswd in ip_list:
if os == 'huawei':
session = ConnectHandler(device_type=os,
ip=ipaddr,
username=name,
password=pswd,
banner_timeout=300)
print("connecting to " + ipaddr + os + name + pswd)
print("---- Getting configuration from {}-----------".format(ipaddr))
config_data = session.send_command('dis ip int brief ')
print(config_data)
session.disconnect()
elif os == 'cisco_ios': # 使用elif关键字创建一个新的条件语句
session = ConnectHandler(device_type=os,
ip=ipaddr,
username=name,
password=pswd,
banner_timeout=300)
print("connecting to " + ipaddr + os + name + pswd)
print("---- Getting configuration from {}-----------".format(ipaddr))
config = session.send_command("show running-config")
print(config)
session.disconnect()
```
注意,elif语句只有在上一个条件不满足时才会执行。
ef get_config(ip_list): for ipaddr,os,name,pswd in ip_list: if os == 'huawei': session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os + name + pswd) print("---- Getting configuration from {}-----------".format(ipaddr)) config_data = session.send_command('dis ip int brief ') print (config_data) session.disconnect() elif os == 'cisco_ios': session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os + name + pswd) print("---- Getting configuration from {}-----------".format(ipaddr)) config_data = session.send_command("show running-config") #抓取配置引入config print(config_data) #回显内容,类似登录设备show run session.disconnect() 如何修改让if语句能否跑完整个list,例如第一个为huawei,第二个为cisco_ios,第三个为huawei,以及代码有什么需要修改的错误
你可以使用一个 for 循环来遍历整个 `ip_list` 列表,并在循环体内使用 if-else 语句对每个设备进行不同的操作,例如:
```
def get_config(ip_list):
for ipaddr, os, name, pswd in ip_list:
session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300)
print("Connecting to " + ipaddr + os + name + pswd)
print("---- Getting configuration from {}-----------".format(ipaddr))
if os == 'huawei':
config_data = session.send_command('dis ip int brief')
elif os == 'cisco_ios':
config_data = session.send_command("show running-config")
else:
print("Unsupported OS: " + os)
continue
print(config_data)
session.disconnect()
```
在上面的代码中,我们使用了一个 for 循环来遍历 `ip_list` 列表中的每个元素。对于每个元素,我们都创建了一个 `session` 对象,并使用 if-else 语句根据设备的操作系统类型来执行不同的命令。如果设备的操作系统类型不是 `huawei` 或 `cisco_ios`,我们会打印一个错误信息并使用 `continue` 跳过当前循环。最后,我们打印输出命令的结果,并使用 `session.disconnect()` 断开连接。
需要注意的是,这里的代码没有明显的语法错误,但如果运行时会出现任何异常,请检查是否正确安装了所需的库,并检查连接设备的用户名和密码是否正确。
阅读全文