Chi*_*x89 2 python synchronization for-loop
我有两个列表,第一个列表是ssh到的主机名,第二个列表是要在给定主机名上查找的隧道.我需要列表主机名中的第一项才能仅运行列表隧道中的第一项.然后我需要列表主机名中的第二项只运行列表隧道中的第二项.以下是我使用的示例,但显然不适合我.
hostnames = ["router1", "router2"]
tunnels = ["Tu1000", "Tu5000"
for i in range (0, len(hostnames)):
try:
ssh1 = paramiko.SSHClient()
ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh1.connect(hostnames[i], port=22, username=username, password=password, look_for_keys=False, allow_agent=False)
print "SSH connection to %s established.\n" % hostnames[i].upper()
ssh = ssh1.invoke_shell()
for j in range(0, len(tunnels)):
ssh.send("!\n")
ssh.send("en\n")
ssh.send(password)
ssh.send("\n!\n")
time.sleep(1)
output = ssh.recv(65535)
ssh.send("sh int desc | i " + tunnels[j] + "\n")
time.sleep(1)
output = ssh.recv(65535)
output = output.split(" ")
cli_hostname = output[55]
Run Code Online (Sandbox Code Playgroud)
你可以试试这样的东西 -
hostnames = ["router1", "router2"]
tunnels = ["Tu1000", "Tu5000"]
for hostname, tunnel in zip(hostnames, tunnels):
# Do stuff with `hostname` and `tunnel`
....
Run Code Online (Sandbox Code Playgroud)
在这里阅读有关zip功能.
阅读有关元组拆包的信息.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |