【发布时间】:2016-08-11 21:05:56
【问题描述】:
这是我的代码:
class telnet(object):
"""conexiune"""
def __init__(self):
HOST = "route-views.routeviews.org"
user = "rviews"
password = ""
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ", 5)
tn.write(user + "\r\n")
tn.read_until("Password: ", 5)
tn.write(password + "\r\n")
print tn.read_until(">", 10)
tn.write("show ip route 192.0.2.1"+"\r\n")
self.y = tn.read_until("free", 10)
print self.y
tn.write("exit"+ "\r\n")
tn.close()
def re(self):
self.m = re.search(r' Known via "bgp \d{0,5}"', self.y)
if self.m:
print self.m.group(0)
else:
print False
我需要做的是返回 self.m 而不是打印它。如果我写'return "This answer is:"+self.m',我会得到这个错误:
return "答案是:" + self.m.group(0) TypeError: 无法连接 'str' 和 '_sre.SRE_Match' 对象
如果我使用 print,它会打印它,但我不知道如何使用 return 语句。
这是它必须返回的:
通过“bgp 6447”知道
从此 telnet 输出: 路线视图> 显示 ip 路由 192.0.2.1
192.0.2.1/32 的路由条目
通过“bgp 6447”知道,距离 20,公制 0
标签 19214,输入外部
从 208.74.64.40 4w1d 前的最后更新
路由描述符块:
-
208.74.64.40,从 208.74.64.40,4w1d 前
Route metric 为 0,流量份额计数为 1
AS 啤酒花 1
路线标签 19214
MPLS 标签:无
路线视图>
我知道 return 用于函数 - 这就是我添加“+”的原因。顺便说一句,我是 Python 初学者。任何帮助将不胜感激。
【问题讨论】:
-
您能否发布实际的错误回溯(整个事情)以及您用来生成该回溯的确切代码?您的帖子中有很多不同的变体...
print self.m.group(0)、return 'the answer is:' + self.m、return "The answer is: " + self.m.group(0)等。 -
这是错误:回溯(最近一次调用最后一次):文件“C:\Users\JohnyB™\Desktop\junk.py”,第 95 行,在
x.re()文件“C:\Users\JohnyB™\Desktop\junk.py”,第 43 行,重新返回“答案是:” + self.m.group(0) TypeError: cannot concatenate 'str' and '_sre.SRE_Match ' 对象如果我输入返回“答案是:”+self.m.group(0) 而不是打印 self.m.group(0) ,则会出现此错误
标签: python python-2.7 return telnet