我编写了一个脚本,用于将配置推送到网络设备和/或将各种命令的输出打印到文件,备份等。
当我定义设备的IP时,这对单个设备非常有效。我不知道如何编写一个循环以便它通过一个包含多个IP的文件,并让它一个接一个地运行它们的命令? IE浏览器。我有一个文件IP.txt包含:
1.1.1.1
2.2.2.2
3.3.3.3
这是我的剧本:
import pexpect
HOST = "1.1.1.1"
user = "user"
password = "pass"
policymap = pexpect.spawn ('telnet '+HOST)
policymap.expect ('Username: ')
policymap.sendline (user)
policymap.expect ('Password: ')
policymap.sendline (password)
routerHostname = "router"
policymap.expect (router+'#')
policymap.sendline ('sh ip int br\r')
等等。
试着找出如何让脚本在文件中运行IP列表并运行命令?很抱歉在这里做业余,我是新手,并通过一本书来正确学习......但是发现这对问题很有帮助:))
答案 0 :(得分:2)
with open("IP.txt") as ips:
all_ips = [x.rstrip() for x in ips] # get all ips in a list and strip newline
for ip in all_ips:
policymap = pexpect.spawn ('telnet '+ ip) # first loop it will be 1.1.1.1, second loop it will be 2.2.2.2 etc..
all_ips
看起来像['1.1.1.1', '2.2.2.2', '3.3.3.3']