Python脚本显示顺序调整需求:先展示分隔栏再输出Banner
解决方案
如果你希望先显示两条分隔栏,再逐字符展示Banner内容,有两种实现方式,可根据视觉需求选择:
方式1:两条分隔栏连续显示后,Banner在下方输出
直接调整打印语句顺序,把两条分隔栏的打印逻辑放在Banner输出循环之前:
from pyfiglet import figlet_format as pyfiglet import time, sys banner = pyfiglet("Banner") # 先打印两条分隔栏 print("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") # 逐字符输出Banner for i in banner: sys.stdout.flush() print(i, end="") time.sleep(0.01)
方式2:Banner在两条分隔栏之间逐字符显示(贴近原布局)
如果想保留Banner被上下分隔栏包裹的布局,同时让分隔栏先全部显示,再展示Banner,需要用ANSI转义序列控制光标位置:
from pyfiglet import figlet_format as pyfiglet import time, sys banner = pyfiglet("Banner") # 打印顶部分隔栏 print("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") # 打印空行,预留Banner的显示位置 print() # 打印底部分隔栏 print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") # 将光标向上移动2行,回到预留的Banner位置(\033[2A 表示向上移动2行) sys.stdout.write("\033[2A") sys.stdout.flush() # 逐字符输出Banner for i in banner: sys.stdout.flush() print(i, end="") time.sleep(0.01)
关键调整说明
- 方式1仅调整打印语句顺序,将两条分隔栏的
print调用移到Banner循环前,实现先输出分隔栏再输出Banner。 - 方式2通过
\033[2A转义码将光标移回预留位置,让分隔栏先完整显示,之后Banner在中间逐字符出现,保持原有上下分隔栏包裹Banner的布局。
内容的提问来源于stack exchange,提问作者user21253318
相关产品推荐
相关产品推荐

