Python - 将行发送到多个设备(在带有IP的文本文件中列出)

时间:2014-08-06 13:49:50

标签: python cisco

我编写了一个脚本,用于将配置推送到网络设备和/或将各种命令的输出打印到文件,备份等。

当我定义设备的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列表并运行命令?很抱歉在这里做业余,我是新手,并通过一本书来正确学习......但是发现这对问题很有帮助:))

1 个答案:

答案 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']