python如何使用sys.stdout输出原地不动的跳动数字?

liangyz
  • 26

def bar():

i = 0
while i < 100:
    i += 1
    time.sleep(1)
    sys.stdout.write(str(i) + '\b'*2)
    #sys.stdout.write(' \b')
    sys.stdout.flush()
    #此代码输出后是光标不断往前走的效果..
回复
阅读 4.2k
3 个回答
mizhoux
  • 3k
✓ 已被采纳

我才你想要的是 '\r' —— '\r' 的作用是 “回到行首”


import sys
import time

def bar():
    i = 0
    while i < 100:
        i += 1
        time.sleep(1)
        sys.stdout.write(str(i) + '\r')

bar()

<script>alert('ok')</script>

所有语言的类似需求都是\r,可以用来实现进度条效果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏