2016-03-15 47 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,但被所有的花裏胡哨弄糊塗了。 –

相關問題