在Python中控制台上的中心对齐文本

GPX*_*GPX 4 python shell console text

我正在创建一个简单的基于控制台的Python(版本2.4)脚本,它将在Ba​​sh shell上运行.它是一个简单的基于菜单的脚本,向用户显示一组选项,并根据用户输入执行特定任务.

当脚本启动时,我希望它清除屏幕并在屏幕中央显示菜单.我可以从中获取控制台宽度stty size.我如何进行中心对齐文本?

小智 6

您可以使用 str.center

s = "hello world"
s.center(40)
>>> '              hello world               '
Run Code Online (Sandbox Code Playgroud)

  • @Qwertie `string` 模块(例如 `string.center('foo', 10)`)中的 _function_ 已在 Python 3 中删除。`str` 对象上的 _method_ 很好(例如 `'foo'.center( 10)`)。 (3认同)

Ami*_*ein 5

如果您正在使用python版本3.6(因为我喜欢使用它而不是2.7),您可以使用函数中的caret字符format:

>>> '{:^50}'.format('sample text')
'                   sample text                    '     # with a length of 50.
Run Code Online (Sandbox Code Playgroud)

如果你想填补你使用的空白:

>>> '{:*^50}'.format('sample text')
'*******************sample text********************'     # * is the fill character.
Run Code Online (Sandbox Code Playgroud)


Ahm*_*zal 5

import shutil

def print_centre(s):
    print(s.center(shutil.get_terminal_size().columns))
Run Code Online (Sandbox Code Playgroud)