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

如何在Thonny Shell中清除当前行并实现同屏更新打印?

实现单行更新温度输出的方法

想在Thonny Shell里让循环中的温度信息在同一行更新,而不是每次打印新行,你可以用**回车符\r**让光标回到行首,覆盖原有内容,再配合输出刷新确保内容及时显示。下面是两种实用的实现方式:

方法1:修改print的end参数

把原来的print语句改成这样:

print(f'current temp= {cpu_temp}    Min = {min_temp}   Max = {max_temp}   Temp Dif = {temp_dif}', end='\r')
  • end='\r':把print默认的换行符\n换成回车符,光标会回到当前行开头,下一次打印时就会覆盖之前的内容。
  • 用f-string格式化字符串,代码会更简洁好读。

如果遇到内容更新不及时的情况,加上强制刷新输出的操作就行:

import sys

print(f'current temp= {cpu_temp}    Min = {min_temp}   Max = {max_temp}   Temp Dif = {temp_dif}', end='\r')
sys.stdout.flush()

这能保证输出立刻显示在Thonny Shell里,避免缓冲导致的延迟。

方法2:直接操作sys.stdout

另一种方式是直接调用标准输出的写入方法:

import sys

sys.stdout.write(f'current temp= {cpu_temp}    Min = {min_temp}   Max = {max_temp}   Temp Dif = {temp_dif}\r')
sys.stdout.flush()

原理和方法1一样,只是直接通过stdout来控制输出行为。

注意事项

  • 要确保每次输出的内容长度不短于上一次,不然会留下之前内容的残留字符。如果后续输出内容更短,可以在字符串末尾加足够的空格来覆盖旧内容。
  • Thonny Shell完全支持\r的行首定位功能,不用额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:05:05