【发布时间】:2014-08-08 08:46:58
【问题描述】:
我尝试在“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 执行后立即返回而无需等待?
谢谢。
【问题讨论】:
-
看起来和缓冲有关
-
time.sleep(1800)直到read_until完成后才会发生,所以它对你没有任何好处。你试图做什么呢?如果我们知道这一点,我们也许可以解释如何去做,而不是试图根据您的尝试进行猜测。 (有关更多信息,请参阅What is the XY problem?,帮助也可能会有所帮助。)
标签: python telnet tar telnetlib