You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除Python代码中使用\r命令时产生的空白?

解决Python中\r导致的输出空白问题

你的代码里出现空白,是因为"...\r \r"的逻辑冗余:先输出三个点,用\r回到行首,再输出三个空格覆盖点,接着又用\r回到行首,这就造成了空格显示的空白。\r本身是将光标移到行首,后续输出的内容会直接覆盖当前行的开头内容,不需要额外用空格去覆盖。

优化方案1:简化原有逻辑

直接去掉多余的空格和重复\r,每次循环输出三个点后回到行首,下次循环的输出会自动覆盖之前的内容:

import time
import sys

def delay_print(s):
    for c in s:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(0.25)

def Loading():
    load = 10
    while load != 0:
        sys.stdout.write("...\r")
        sys.stdout.flush()
        load -= 1
        time.sleep(0.5)

Loading()

优化方案2:动态加载动画(可选)

如果想让加载效果更直观,可以生成动态变化的点,同时用固定格式确保覆盖完全,避免空白:

import time
import sys

def Loading():
    load = 10
    while load != 0:
        # 生成1-3个动态变化的点
        dots = "." * ((10 - load) % 3 + 1)
        # 输出固定前缀+动态点,回车回到行首
        sys.stdout.write(f"Loading{dots}\r")
        sys.stdout.flush()
        load -= 1
        time.sleep(0.5)

Loading()

核心逻辑:\r的作用是将光标重置到行首,只要后续输出的内容长度不小于之前的内容,就能完全覆盖,不需要额外空格填充,自然就不会出现空白。

内容的提问来源于stack exchange,提问作者oscar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:32:27