PExpect :: while循环中的数字没有增加...抛出type()错误

时间:2014-11-09 17:40:29

标签: python python-2.7 pexpect

以下是我的Pexpect脚本:

import pexpect

child = pexpect.spawn('telnet 10.1.1.1')
child.logfile = sys.stdout    
child.expect(":")
child.send("admin" + "\r")
child.expect(":")
child.send("test" + "\r")
child.send("\r\n")
child.expect(">")
child.send("enable" + "\r")
child.expect("#")
child.send("self" + "\r")
child.expect("#")
n=1
while (n < 5):
    #n1 = float(n)
    child.send("interface vlan" (float (n)) + "\r")    # ISSUE IS HERE
    child.expect("#")
    n = n+1
child.expect("#")

我正在使用上面的脚本来配置路由器中VLAN的数量。当我运行这个脚本时,我得到&#34;跟踪错误...类型(str)不能连接&#34;。我试图将其转换为&#34; int()&#34;和&#34; float()&#34;。但它不起作用。

我想在&#34; child.expect()&#34;中发送以下行:

interface vlan 1

interface vlan 2

interface vlan 3

interface vlan 4

interface vlan 5

 I am trying to use while loop to  print number from 1 to 5. 

请告诉我......如果您有任何想法可以解决此问题。

谢谢,

库马尔。

1 个答案:

答案 0 :(得分:0)

您在%之后缺少"interface vlan"以及格式说明符。该行应如下所示:

child.send("interface vlan %d" % (n) + "\r")