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

Python print()多行覆盖问题:如何实现循环指定格式输出?

解决Python多行控制台输出覆盖问题

问题描述

编写了一段Python代码,希望循环输出两行内容,每次循环覆盖上一次的两行输出,但实际运行时内容不断追加新行,无法回到上一行覆盖原有内容,尝试设置print的end参数为''或'\r'仍未解决。

原代码

import time

start_time = time.time()
while (time.time() - start_time) < 10:
    current_date_time = time.strftime("%Y-%m-%d %H:%M:%S")
    current_time = time.strftime("%H:%M:%S")

    print("\r" + current_date_time)
    print(current_time, end="\r")
    
    time.sleep(0.5)

预期输出

期望实现循环更新的两行输出,格式如下:

cycle1:
line1: data1
line2: data2
cycle2:
line1: data3
line2: data4
...
cycleN:
line1: dataN
line2: dataN+1

实际输出

实际运行时内容持续追加新行,无法覆盖:

2023-05-12 14:25:24 (data1)
2023-05-12 14:25:25 (data3)
2023-05-12 14:25:25 (data5)
2023-05-12 14:25:26 (data6)
14:25:26 (data7)

解决方案

使用ANSI转义序列控制光标位置和清除行内容,结合colorama处理跨平台终端兼容性,修改后的代码如下:

import datetime
import time
import colorama
from colorama import Fore, Style

def main():
    # 初始化colorama,适配Windows终端的ANSI序列支持
    colorama.init()

    start_time = time.time()
    cycle_length = 10

    # 首次打印前先输出空行,避免光标位置异常
    print("\n")
    
    while (time.time() - start_time) < cycle_length:
        now = datetime.datetime.now()
        date_time_str = now.strftime("%Y-%m-%d %H:%M:%S")
        time_str = now.strftime("%H:%M:%S")

        # 清除当前两行内容并将光标移回初始位置
        print("\033[2K", end="")  # 清除当前行
        print("\033[F", end="")   # 光标上移一行
        print("\033[2K", end="")  # 清除上一行
        print("\033[F", end="")   # 光标再上移一行(回到初始位置)

        # 打印新的两行内容
        print(Fore.GREEN + date_time_str)
        print(Fore.YELLOW + time_str)

        time.sleep(0.5)

    # 退出循环后清理终端残留内容
    print("\033[2K", end="")
    print("\033[F", end="")
    print("\033[2K", end="")
    
    colorama.deinit()

if __name__ == "__main__":
    main()

核心要点

  • \033[2K:清除当前行的全部内容,避免残留旧文本
  • \033[F:将光标移动到上一行的起始位置,实现回退覆盖
  • colorama:解决Windows系统终端不支持ANSI转义序列的问题,保证代码在Windows、Linux、MacOS上都能正常运行
  • 循环开始前先输出两行空行,确保光标位置初始状态稳定,避免首次清理时出现异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:43:32