if (tn.read_until('>')):
action1
else:
action2
或者
if (tn.read_until() == '>'):
action1
else:
action2
我只想read_until()
检查哪个所需的字符串首先出现,并执行不同的操作。或者有没有等效的方法?
if (tn.read_until('>')):
action1
else:
action2
或者
if (tn.read_until() == '>'):
action1
else:
action2
我只想read_until()
检查哪个所需的字符串首先出现,并执行不同的操作。或者有没有等效的方法?
查看文档。Read until 想要预期的字符串作为位置参数和可选的超时。我会这样做:
>>> try:
... response = tn.read_until(">", timeout=120) #or whatever timeout you choose.
... except EOFError as e:
... print "Connection closed: %s" % e
>>> if ">" in response:
... action1
... else:
... action2
如果你想要多个不同的字符,你可以使用read_some()
>>> while True: #really you should set some sort of a timeout here.
... r = tn.read_some()
... if any(x in r for x in ["#", ">"]):
... break
更好的是只使用:
buff_tpl = tn.expect(["#", ">"])
这将返回一个包含三个项目的元组,第一个(索引为 0)是匹配的列表项的索引,第二个是和对象匹配的,第三个是输出文本。
您可以使用 buff_tpl[2] 打印缓冲区输出,并使用 buff_tpl[0] 知道哪个项目匹配