因此,我正在编写适用于一种设备的脚本(进行自动化)。例如,我有一台具有IP的设备,因此目前我的代码设置中带有一个变量。 ip1 = 127.0.0.1但是现在我希望能够触摸大约100台设备,因此我想创建一个文件或最佳建议,例如:
Device 1 127.0.0.1
Device 2 127.0.0.2
一旦调用或,代码就会执行。我认为最好的方法是创建“词典文件”,有人可以为此指出正确的方向吗?还是我将创建一个包含两列的CSV文件?最佳推荐方法是什么?似乎有人告诉我创建字典文件,但是我不确定这意味着什么。
我的代码目前类似于
ip1 = "127.0.0.0.1"
username = "username"
password = "password"
print("\nHello, user You are connecting to ", ip, "\n")
ssh_conn = paramiko.SSHClient()
ssh_conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_conn.connect(ip, port=22, username=username,
password=password,
look_for_keys=False, allow_agent=False)
因此,为了再次说明一下,我希望将ip1 =替换为一个文件,该文件将存储将近10-100个IP地址,并根据“设备名称”执行代码。
我知道一个例子如下:
released = {
"iphone": 2007,
"iphone 3G": 2008,
"iphone 3GS": 2009,
"iphone 4": 2010,
"iphone 4S": 2011,
"iphone 5": 2012
}
for item in released:
if "iphone 5" in released:
print("Key found")
break
else:
print("No keys found")
但是如果我要添加100个关键值,该怎么办。预先感谢我的专家。
您可以使用CSV
文件存储所有IP及其对应的主机名,例如,
Device 1,127.0.0.1
Device 2,127.0.0.2
然后您可以使用csv
模块内置的python将这些数据读入字典,例如
import csv
info = {}
with open("master.csv", "r") as file:
reader = csv.reader(file)
for item in reader:
info[item[0]] = item[1]
然后您可以询问用户,要连接的设备名称?
device = input("Device name: ")
ip = info.get(device, None) #--> get the ip address from the info dict
如果IP不是None
,则可以连接用户。希望这会有所帮助。