创建read_device_excel函数,因为我需要一个IP地址的列表并且后续包括各个IP对应的用户名密码。 调用openpyxl穿件workbook对象,用于创建workbook并复制给wb1,workbook1内的sheet1赋值给ws1(Sheet1也是默认sheet)。 创建read_device_excel函数,因为我们需要一个IP地址的列表,所以先创建一个ip_list。 A列第一行可以用A1表示,A1的value属性就是单元格里的内容ipaddr,B列是A列IP的用户name,C列是A列IP的密码pswd。 最后把列表retrun出来(传递出来) 创建一个get_config的函数,并把上面的ip_list传递进来进行for循环,在session = ConnectHandler中将IP = ipaddr username = name,password = pswd。
时间: 2023-11-28 12:49:53 浏览: 87
好的,让我来帮你实现这个功能。
首先,你需要安装 `openpyxl` 库,用于处理 Excel 文件。你可以使用以下命令进行安装:
```
pip install openpyxl
```
接下来,你可以使用以下代码创建 `read_device_excel` 函数:
```python
import openpyxl
def read_device_excel(file_path):
# 打开 Excel 文件并获取 Sheet1
wb1 = openpyxl.load_workbook(file_path)
ws1 = wb1["Sheet1"]
ip_list = []
# 遍历每一行,获取 IP 地址、用户名和密码
for row in ws1.iter_rows(min_row=2, values_only=True):
ipaddr, name, pswd = row
# 将 IP 地址、用户名和密码组成一个元组,并添加到列表中
ip_list.append((ipaddr, name, pswd))
# 返回 IP 地址列表
return ip_list
```
这个函数接收一个 Excel 文件的路径作为参数,返回一个由 IP 地址、用户名和密码组成的元组列表。
接下来,你可以使用以下代码创建 `get_config` 函数:
```python
from netmiko import ConnectHandler
def get_config(ip_list):
for ipaddr, name, pswd in ip_list:
# 连接设备并获取配置信息
device = {
"device_type": "cisco_ios",
"ip": ipaddr,
"username": name,
"password": pswd,
}
with ConnectHandler(**device) as session:
config = session.send_command("show running-config")
# 处理配置信息...
```
这个函数接收一个 IP 地址、用户名和密码组成的元组列表作为参数,遍历每个设备,连接设备并获取配置信息。你需要将 `处理配置信息...` 替换为你实际的代码。
希望这可以帮助到你!
阅读全文