2016-03-15 52 views
3

我喜欢在IJulia笔记本电脑上工作,并希望一次又一次地在同一行上打印某个进程的状态。将输出写入控制台中的相同位置

以在下面的链接中给出的例子中,我们希望一些输出:

Downloading File FooFile.txt [47%] 

,并希望避免这样的事情:

Downloading File FooFile.txt [47%] 
Downloading File FooFile.txt [48%] 
Downloading File FooFile.txt [49%] 

在Python的情况下,我找到了答案here

什么是解决方案?

+1

为什么这个问题会引起投票反对并不明显,这是一个很好的例子,说明为什么你应该总是考虑留下评论来解释你的倒票。我的投票回到0. –

+0

也许有人在糟糕的一天,感觉自己喜欢投降。我觉得这些初学者的问题在这里可以得到答案和提供是非常好的,至少我从中受益良多。 –

回答

7

Python答案中的“魔术”不是Python唯一的......它只是\r字符:它将光标位置重置为行的开头(不创建新行)。如果您的终端支持这种光标移动,后续的打印说明将会覆盖以前的文本。

在朱莉娅:

print("Download progress: $(progress)% \r") 
flush(STDOUT) 

您还可以看看ProgressMeter.jl为发烧友光标移动和输出。

+1

似乎可以工作,但看起来笔记本在回移时很清晰,所以“\ r”应该是新消息中的第一个,让文本保留在打印之间。 – lossleader

+0

谢谢!这样一个最小的工作例子是非常棒的。我之前看过ProgressMeter,但被所有的花里胡哨弄糊涂了。 –

相关问题