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

如何用Python 3.x清除终端中两行打印内容?

解决终端多行内容清除后重新打印的问题

你之前用\r无效是因为回车符\r只能将光标移到当前行的开头,无法处理多行内容,所以没法清除上一行的文字。下面提供几种可行的解决方案:

方法1:使用ANSI转义序列(跨平台,推荐)

ANSI转义序列可以直接控制终端光标和内容,大部分现代终端(Linux/macOS终端、Windows Terminal等)都支持:

精准清除指定行

import time

# 打印初始两行内容,flush确保立即输出
print("Hi !\nHow are you ?", flush=True)
time.sleep(1)

# 光标上移2行,回到第一行开头
print("\033[2A", end='')
# 清除当前行(第一行)
print("\033[K", end='')
# 换行到第二行,清除该行
print("\n\033[K", end='')
# 再次上移2行,回到初始位置准备打印新内容
print("\033[2A", end='')

# 打印新内容
print("New\nText")

直接清屏(更简单)

如果不需要保留其他终端内容,直接清屏更省事:

import time

print("Hi !\nHow are you ?", flush=True)
time.sleep(1)

# \033[2J 清除整个屏幕,\033[H 将光标移到左上角
print("\033[2J\033[H", end='')

print("New\nText")

方法2:调用系统清屏命令

通过系统自带的清屏命令实现,兼容性好但依赖系统环境:

import time
import os

print("Hi !\nHow are you ?")
time.sleep(1)

# Windows用cls,Linux/macOS用clear
os.system('cls' if os.name == 'nt' else 'clear')

print("New\nText")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:42:24