Center-aligning text on console in Python

2019-04-10 02:04发布

问题:

I am creating a simple console-based Python (version 2.4) script that will be run on a Bash shell. It is a simple menu-based script that displays a set of options to the user and will do specific tasks depending on the user input.

When the script starts, I want it to clear the screen and display the menu in the center of the screen. I can get the console width from stty size. How do I go about center-aligning the text?

回答1:

You can use str.center

s = "hello world"
s.center(40)
>>> '              hello world               '


回答2:

If you are using python version 3.6 (as I love to use it instead of 2.7) you can use the caret character in the format function:

>>> '{:^50}'.format('sample text')
'                   sample text                    '     # with a length of 50.

If you want to fill the gap you use:

>>> '{:*^50}'.format('sample text')
'*******************sample text********************'     # * is the fill character.