1

我试图打印出'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执行后立即返回而不等待?

谢谢你。

4

1 回答 1

2

我真的不明白你的第一个脚本有什么问题......无论如何你可以试试这个吗?

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

循环通过指定 timeout 参数等待 telnet 连接变为静默1.0

于 2014-08-08T00:05:16.027 回答