首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python EXscript - AttributeError:'str‘对象没有属性'connect’

Python EXscript - AttributeError:'str‘对象没有属性'connect’
EN

Stack Overflow用户
提问于 2015-06-05 17:12:12
回答 1查看 2.2K关注 0票数 1

我试图让一个脚本使用Python和Exscript登录Cisco设备。

作为一个全新的例子,我被一个错误困住了,我要绕过IP地址部分。

AttributeError:'str‘对象没有属性'connect’

我明白这意味着什么,但我不知道如何输入,并使它成为一个对象。

代码语言:javascript
复制
Switch_IP = raw_input('Core Switch IP :')
print
print "Login Method"
print "============"
print "1.Telnet"
print "2.SSHv2"
print
Connection_Type = raw_input('Connection Type :')
Device_IP = raw_input('IP Address :')

conn = 'null'

if Connection_Type == '1':
    conn = 'Telnet()'
elif Connection_Type == '2':
    conn = 'SSH2()'

account = read_login()                         
conn.connect(Switch_IP)     
conn.login(account)     

conn.execute('term len 0')
conn.execute('term width 0')
conn.execute("show ip arp | i " + Device_IP)

f = open("ARP-Output-tmp.txt","w")
f.write(conn.response)
f.close()

它一度起作用,但我不知道我做了什么来阻止它发挥作用。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-05 17:13:00

您将conn设置为两个字符串中的一个:

代码语言:javascript
复制
if Connection_Type == '1':
    conn = 'Telnet()' 
elif Connection_Type == '2':
    conn = 'SSH2()'

所以'Telnet()'.connect'SSH2()'.connect都会起作用的。

如果您已经从某个地方导入了SSH或Telnet,并且假设它们是类,那么删除单引号,您将创建一个实例,一旦这些类有了connect方法,这个实例就可以工作了。

代码语言:javascript
复制
 if Connection_Type == '1':
    conn = Telnet()
elif Connection_Type == '2':
    conn = SSH2()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30672198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档