如何打印输出" tar"执行直到它完成使用telnetlib?

时间:2014-08-07 23:37:25

标签: python telnet tar telnetlib

我尝试打印出'tar'命令提取文件,但我无法打印出进度的输出。

import telnetlib

tn = telnetlib.Telnet("x.x.x.x")

tn.write("tar -xvf a.tar")
print tn.read_until("#")
time.sleep(1800)

上面的代码在执行后打印出所有输出,并且需要等待tar完成不到1800秒。

另一种尝试是

import telnetlib

tn = telnetlib.Telnet("x.x.x.x")

tn.write("tar -xvf a.tar")
print tn.read_eager()

print tn.read_all()

执行tar时,此代码不会输出输出。您是否会告诉我如何在tar运行时打印出来,并在完成tar执行后立即返回而不等待?

谢谢。

1 个答案:

答案 0 :(得分:2)

我真的不明白第一个剧本的问题是什么......无论如何你能试试吗?

tn.write("tar -xvf a.tar")
while True:
    resp = tn.read_until("#", 1.0)
    if 0 == len(resp): break
    print resp
print "done"

循环通过指定超时参数1.0来等待telnet连接变为静默。