在 python 中限制或限制 read_very_eager()
Restrict or limit read_very_eager() in python
我在使用 telnet 库通过 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
命令的内容?
经过 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()
Read everything that can be without blocking in I/O (eager).
我从中得到了启发,让脚本强行停止了 "reading"。并重新开始阅读,达到了目的。
我在使用 telnet 库通过 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
命令的内容?
经过 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()
Read everything that can be without blocking in I/O (eager).
我从中得到了启发,让脚本强行停止了 "reading"。并重新开始阅读,达到了目的。