Python - 向多个设备发送行(IP地址在文本文件中列出)
我写了一个脚本,用来把配置推送到网络设备上,或者把各种命令的输出打印到文件里,做备份等等。
当我指定设备的IP地址时,这个脚本运行得非常好。我现在不太确定怎么写一个循环,让它能读取一个包含多个IP地址的文件,并一个一个地对这些设备执行命令。比如,我有一个名为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列表,并对每个IP执行命令?抱歉我有点菜,我刚开始接触这个,正在通过一本书好好学习……但我发现这些问题的讨论对我很有帮助 :)
1 个回答
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']