我正在远程机器上执行一些命令,它使用telnet lib通过telnet会话运行linux。当我提供以下内容时:
tn.write("<binary_name>")
time.sleep(10)
tn.write("cat <path_of_output_file>")
rd_buf=tn.read_very_eager()
print(rd_buf)
它给出了二进制的输出和cat
命令的输出。虽然我只想要cat
命令的输出。我只与read_very_eager
和read_until
合作。如何将缓冲区变量限制为仅保留cat
命令的内容?
答案 0 :(得分:0)
在使用read_until()
和read_very_eager()
进行一些游戏之后,我终于解决了这个问题。我所要做的就是:
tn.write("<binary_name>")
time.sleep(10)
junk=tn.read_very_eager()
tn.write("cat <path_of_output_file>")
rd_buf=tn.read_very_eager()
print(rd_buf)
通过添加1行(junk=tn.read_very_eager()
),我能够达到我想要的效果。引用python官方文档:
Telnet.read_very_eager()
在I / O(渴望)中读取可以无阻塞的所有内容。
我从中得到了一个暗示,并使剧本强行停止阅读&#34;。并开始重新阅读,这符合目的。