0

python3 でいくつかの telnet アクションを自動化しようとしています。そこで、ビルドを telnetlib (pexpect ではなく) で使い始めました。

実際にはこれまでのところすべてが機能していますが、read_until がどのように機能するかを完全には理解していません。戻り値として格納できるもの!

それは理にかなっていますか ?!

特定の値を read_until したい場合 - この値が実際に関数が読み取った値であることを確認するにはどうすればよいですか。また、タイムアウトが発生したかどうかを確認する方法がわかりませんでした。

今のところ私の回避策は次のとおりです。

output = telnet.read_until(str.encode(hostname), 3)
if re.search(hostname, bytes.decode(output), re.IGNORECASE):
   #do something when the output matches the searchstring
else:
   #stop the function

しかし、それは私には意味がないので、おそらくあなたは今より良い解決策です

4

1 に答える 1

1

はい、ホスト名が の場合example.com、read_until は のようなものを返しますweijwrgnerg hgqwv blather example.com。3 秒経ってもホスト名が見つからない場合を除いて、それまでに取得したものは何でも吐き出します: weijwrgnerg hg.

だから私はあなたがそれをほぼ正しくやっていると思います。おそらくre.escapeホスト名が必要です。そうしないと、正規表現として解釈されます。または、Python の.endswith(). output.decode()そして、(ではなく)文字列を取得することができますbytes.decode(output)

于 2010-12-14T14:48:18.037 に答える