python - 如何使用\r (Python) 替换上一行中的字符串

标签 python string replace countdown

我正在尝试制作一个从 60 秒开始的倒计时器。我唯一的问题是,当我运行该函数时,程序会打印如下代码:

60

59

58

...等

如何在不打印 60 行的情况下替换第一行中的 60 并将 59 放在原来的位置?

这是我的代码:

from __future__ import division
import sys, time 

def countdown():
    seconds = 60
    while seconds >= 0:
        print seconds
        sys.stdout.flush()
        time.sleep(1)
        seconds -= 1

最佳答案

countdown 函数的开头打印一个空行。这将创建 \r 工作所需的行。现在,将 print Seconds 部分替换为

sys.stdout.write('\r  \r')
sys.stdout.write(str(seconds))

第一行清除函数开头打印的上一个空行。第二个输出秒。

代码:

def countdown():
    seconds = 60
    print ''
    while seconds >= 0:
        sys.stdout.write('\r  \r')
        sys.stdout.write(str(seconds))
        sys.stdout.flush()
        time.sleep(1)
        seconds -= 1

关于python - 如何使用\r (Python) 替换上一行中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752932/

相关文章:

python - 使用 Python 的非阻塞 SQL 执行

python - 如何将长度为 n 的元组解压缩为 m<n 变量

java - 用正则表达式比较两个字符串的替代方法是什么

c - 文件 C 中的字符串

mysql替换为替代

php - 用于替换 html 代码中的 css 类的正则表达式

Python - 无法正确读取十六进制 0A

python - 从另一个嵌套数据类访问嵌套类

java - Java 中的字符串池,编译时与运行时字符串评估

excel - 加快 Cell 更换 VBA