有办法做到这一点吗?
例如:
我有一个词典
sounds = {
'sound1.mp3': 0,
'sound2.mp3': 0,
'sound3.mp3': 0
}
当键值(此ex中的sound1)更新时,命令提示符将来自
sound1.mp3: 0
sound2.mp3: 0
sound3.mp3: 0
to
sound1.mp3: 1
sound2.mp3: 0
sound3.mp3: 0
答案 0 :(得分:0)
这是一个关于我所说的简单演示:
class Holder(object):
def __init__(self, init_dict):
self.dict = init_dict
def increase(self, key):
if key in self.dict:
d = {key: self.dict[key] + 1}
self.update(d)
def update(self, d):
self.dict.update(d)
self.print_prompt()
def print_prompt(self):
for key in sorted(self.dict.keys()):
print '%s: %d' % (key, self.dict[key])
print
def main():
sounds = {
'sound1.mp3': 0,
'sound2.mp3': 0,
'sound3.mp3': 0
}
holder = Holder(sounds)
holder.print_prompt()
holder.increase('sound1.mp3')
holder.update({
'sound1.mp3': 3,
'sound2.mp3': 2,
'sound3.mp3': 1
})
if __name__ == '__main__':
main()
输出结果为:
sound1.mp3: 0
sound2.mp3: 0
sound3.mp3: 0
sound1.mp3: 1
sound2.mp3: 0
sound3.mp3: 0
sound1.mp3: 3
sound2.mp3: 2
sound3.mp3: 1
答案 1 :(得分:0)
如果您正在使用终端,可以使用for i in range(10):
time.sleep(1)
print(i, end="\r")
字符(回车)将输出返回到行的开头。
例如,我们可以做
>>>
请注意,提示符(在IDLE中)将覆盖{{1}}的最后一次迭代。这是因为在命令提示符下,它实际上将下一个字符指针移动到行的开头。
如果您想避免这种情况,请稍后再打印一个空行。
据我所知,重新打印前一行的唯一方法是清除屏幕。有关如何清除整个屏幕,请参阅This question或This question。