Python Telnetlib read_until '#' or '>', multiple string determination?

automated-tests, port, python, telnet, telnetlib

Solution

Look at the docs. Read until wants the expected string as a positional argument and an optional timeout. I would do it like this:

>>> 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

If you want multiple different characters you can use `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

Problem

``` if (tn.read_until('>')): action1 else: action2 ``` or ``` if (tn.read_until() == '>'): action1 else: action2 ``` I just want the `read_until()` to check which desired String comes first, and do different actions. Or is there any equivalent ways?

Original source