Python如何实现倒计时效果?

图片描述

我在尝试写个命令行的fm,但是碰到播放时间的适合遇到了问题,如何实现一个计时器,每次自减1秒后覆盖之前的print 输出
我想把歌曲总时间传入如下代码,封装个函数,但是如何覆盖上一次print的结果呢?

def remain(min)
    count = 0
    while (count < min):
        count += 1
        n = min - count
        time.sleep(1)
        print n   
阅读 14k
评论 2015-05-29 提问
    1 个回答

    先科普下,"\r" 表示光标回到行首(参考自ascii编码表)。利用它就能达到覆盖字符的效果,但前提是别换行(消灭\n)。
    来吧~ 看吾主的神迹。

    pythonline = "============================="
    print(line + "\r" + line, end='');print("\r" + line + "\r" + line)
    

    再补充个进度条demo

    pythonimport time
    lineLength = 20
    delaySeconds = 0.05
    frontSymbol = '='
    frontSymbol2 = ['—', '\\', '|', '/']
    backSymbol  = ' '
    
    for i in range(10):
        lineTmpla = "{:%s<%s} {} {:<2}"%(backSymbol, lineLength)
        for j in range(lineLength):
            tmpSymbol = frontSymbol2[j%(len(frontSymbol2))]
            print("\r" + lineTmpla.format(frontSymbol * j, tmpSymbol, j), end='')
            time.sleep(delaySeconds)
    
    评论 赞赏 2015-05-31
      撰写回答

      登录后参与交流、获取后续更新提醒