Python 实时更新命令提示文本
有办法做到这一点吗 例: 我有一个口述Python 实时更新命令提示文本,python,Python,有办法做到这一点吗 例: 我有一个口述 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 这是一个关于我所说内容的简单演示: cla
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
这是一个关于我所说内容的简单演示:
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
如果在终端上工作,可以使用
\r
字符(回车符)将输出返回到行首
例如,我们可以
for i in range(10):
time.sleep(1)
print(i, end="\r")
请注意,提示符(在空闲状态下)将用>
覆盖上一次迭代。这是因为在命令提示符下,它会将下一个字符指针移动到行首
如果要避免这种情况,只需在之后打印一个空行即可
据我所知,重新打印前几行的唯一方法是清除屏幕。有关如何清除整个屏幕的信息,请参见或。打印出词典中的项目。完成后,如何显示命令提示?请显示一些代码。@DDGG我希望它在同一行上更新,而不是不断打印…这就是我的要求。它不能在打印它的同一行上更新。您应该分别进行更新和打印。可能我知道您想要什么,您可能需要使用一个类来保存此词典,并创建一个更新方法,在该方法中,您首先进行更新,然后进行打印。@DDGG ya我的意思不是更新和打印在同一行上。像我有一个函数来更新它,然后打印更新的dict。但是idk如何让它替换第一次打印