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

如何将pyfiglet生成的字符艺术文本居中?center()方法无效有什么解决办法?

问题根因
  • shutil.get_terminal_size()返回的是包含终端列数、行数的结构体对象,不能直接作为center()的入参,需要取它的columns属性拿到终端宽度数值
  • figlet_format()生成的是多行拼接的ASCII艺术字符串,直接对整个字符串调用center()不会单独处理每一行的对齐,因此看不到居中效果
可用解决方案

方案1:使用pyfiglet内置的对齐参数(推荐)

figlet_format本身自带对齐配置,直接指定justify和width参数即可实现居中,无需手动处理字符串:

from pyfiglet import figlet_format
import shutil

x = figlet_format(
    "mogus",
    font="standard",
    justify="center",
    width=shutil.get_terminal_size().columns
)
print(x)

方案2:逐行处理字符串后拼接

如果需要自定义对齐逻辑,可以拆分多行字符串,对每一行单独调用居中方法后再拼接输出:

from pyfiglet import figlet_format
import shutil

term_width = shutil.get_terminal_size().columns
x = figlet_format("mogus", font="standard")

# 逐行居中后拼接为新的多行字符串
centered_content = "\n".join([line.center(term_width) for line in x.splitlines()])
print(centered_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:30:00