我试图制作一种停止观察的东西,只是为了尝试学习一些不同的东西。
问题是我不知道如何制作它,所以当你打印时间时,它只是取代你当前打印的时间。
例如,如果时间是:
H M S: 0 0 1
我希望它显示
H M S: 0 0 2
无需打印新的线条,所以看起来它只是计数而已。我这样做是通过打印新线来实现的,但它仍然显示出一种运动,这清楚地表明有新的线条被打印出来。
这是我现在的代码,随意运行它,你明白我的意思: http://notepad.cc/woupodi42
如果他们直接适用于这个问题,任何想法都会被更好地理解:)
答案 0 :(得分:4)
print()的重载会执行此操作。将其与[\r][2]
组合以将光标移动到行的开头,然后再写入每个。:
import time
for x in range(10):
print('\r H M S 0 0 ' + str(x), end='')
time.sleep(1)
OR
for x in range(10):
print('\r H M S 0 0 {}'.format(x), end='')
time.sleep(1)
答案 1 :(得分:1)
提示你,你需要带\r
的sys.stdout.write:
import sys, time
>>> for x in range(10):
... sys.stdout.write('%d\r' % x)
... sys.stdout.flush()
... time.sleep(1)
...
答案 2 :(得分:0)
使用end参数将“ \ r”指定为行结束。
var boolSubject = new Subject<bool>();
//Create a Task that will start running immediately to catch the first element
var myTask = boolSubject.FirstAsync().ToTask();
// Send the first bool
boolSubject.OnNext(true);
//wait for the task to complete, or retrieve the result if it did complete already
var b = await myTask;
Assert.Equal(true, b);